├── source ├── robots.txt ├── CNAME ├── _data │ ├── styles.styl │ ├── include-raw.html │ └── languages.yml ├── zan.jpeg ├── books │ └── index.md ├── favicon.ico ├── _drafts │ ├── start-dapp.md │ ├── media │ │ ├── 1*5abTUgF0OYIi6hqmfWgaLg.png │ │ ├── 1*AXHP2zJ5oQh7GD7VbmHJ0Q.png │ │ ├── 1*GEjr7Z6Z9kx0bI-Tj_Dvcw.png │ │ ├── 1*MJMd3OVd89GDUUyjluPmSQ.png │ │ ├── 1*ROCHY_hAg0KICQD1yWH_dA.png │ │ ├── 1*S9Mv3bEQ7BcX12mX6LI_pQ.png │ │ ├── 1*VIMfRRhgaSp9yM-GUZUyew.png │ │ ├── 1*WPK5t9zuCyMob5FgPkoHUw.png │ │ ├── 1*arn5LoSL2gHyerJo4btuow.png │ │ ├── 1*eInpO0XUlqf3iSrxdqcXww.png │ │ ├── 1*n3aZX6SuGVUlEClhslAuyQ.png │ │ ├── 1*oPQWZ02lYP_0Lr8DcB0rEg.png │ │ ├── 1*ol2K7Jw62d2pUfXSq3jZEA.png │ │ ├── 1*pSsgz1p596AIjg4-T6cPqA.png │ │ ├── 1*q9UITlXmxZbulguIuZDPog.png │ │ ├── 1*r0QZJUgoJnhrX_8XO6CywA.png │ │ ├── 1*vFQ9VZjgzp8jM9zjs0nAwg.png │ │ ├── 1*wZFuAXBRB_JcvcTncwI82w.png │ │ ├── 1*wsfcuDbXnSeVJHCA611oyg.png │ │ ├── 1*0Vx8w-x6DAtkN4M82h4aQg.jpeg │ │ ├── 1*85sZnSyE6JrAePicn5tzaQ.jpeg │ │ ├── 1*KdnauUQ2IPzglnCVAFrdyg.jpeg │ │ ├── 1*MJMd3OVd89GDUUyjluPmSQ-1.png │ │ └── 1*ZWQMcP4fEEoBdF-E9WKyOw.jpeg │ ├── wallet-web3.md │ ├── erc223.md │ ├── reentrancy-attack.md │ ├── truffle.md │ └── 2019-03-29.md ├── images │ ├── qr_pay.jpg │ ├── qrcode.jpg │ ├── zsxq.png │ ├── favicon.ico │ ├── tiny_wx_code.jpeg │ ├── chainlab_qrcode.jpg │ ├── favicon-16x16-next.png │ ├── favicon-32x32-next.png │ └── apple-touch-icon-next.png ├── _posts │ ├── 2019 │ │ ├── assets │ │ │ ├── 1.png │ │ │ ├── 2.png │ │ │ ├── 3.png │ │ │ ├── 4.png │ │ │ ├── 5.png │ │ │ ├── 6.png │ │ │ ├── 7.png │ │ │ ├── 8.png │ │ │ ├── 9.png │ │ │ ├── a.png │ │ │ ├── b.png │ │ │ ├── c.png │ │ │ ├── d.png │ │ │ ├── sms.png │ │ │ ├── email.png │ │ │ ├── jingdu.png │ │ │ ├── shuadan.png │ │ │ ├── User-Authentication1.png │ │ │ ├── User-Authentication2.png │ │ │ ├── User-Authentication3.png │ │ │ ├── Security-Configuration1.png │ │ │ ├── Security-Configuration2.png │ │ │ └── Security-Configuration3.png │ │ ├── media │ │ │ ├── 1.png │ │ │ ├── 2.png │ │ │ └── 3.png │ │ └── govern.md │ ├── 2019-2 │ │ ├── media │ │ │ ├── 1.png │ │ │ ├── 2.png │ │ │ ├── 3.png │ │ │ ├── 4.png │ │ │ └── 5.png │ │ ├── Ethereum-Studio.md │ │ └── key-secret.md │ ├── .MWebMetaData │ │ └── setting.json │ ├── dev-meetup │ │ ├── dev_meeting_10.md │ │ ├── dev_meeting_1.md │ │ ├── dev_meeting_6.md │ │ ├── dev_meeting_4.md │ │ ├── dev_meeting_5.md │ │ ├── dev_meeting_2.md │ │ ├── dev_meeting_8.md │ │ ├── dev_meeting_3.md │ │ ├── dev_meeting_9.md │ │ ├── dev_meeting.md │ │ ├── dev_meeting_7.md │ │ └── dev_meeting_11.md │ └── Q&A │ │ ├── bytes-to-addr.md │ │ ├── bytes-to-uint.md │ │ ├── about-qa.md │ │ ├── is-contract.md │ │ └── contract-this.md ├── tags │ └── index.md └── categories │ └── index.md ├── .vscode └── settings.json ├── themes ├── next │ ├── source │ │ ├── fonts │ │ │ └── .gitkeep │ │ ├── css │ │ │ ├── _mixins │ │ │ │ ├── Mist.styl │ │ │ │ ├── Muse.styl │ │ │ │ ├── custom.styl │ │ │ │ ├── Gemini.styl │ │ │ │ └── Pisces.styl │ │ │ ├── _variables │ │ │ │ ├── Muse.styl │ │ │ │ ├── custom.styl │ │ │ │ ├── Mist.styl │ │ │ │ └── Gemini.styl │ │ │ ├── _schemes │ │ │ │ ├── Mist │ │ │ │ │ ├── _logo.styl │ │ │ │ │ ├── outline │ │ │ │ │ │ └── outline.styl │ │ │ │ │ ├── sidebar │ │ │ │ │ │ └── sidebar-blogroll.styl │ │ │ │ │ ├── _search.styl │ │ │ │ │ ├── _base.styl │ │ │ │ │ └── _header.styl │ │ │ │ ├── Muse │ │ │ │ │ ├── sidebar │ │ │ │ │ │ └── sidebar-blogroll.styl │ │ │ │ │ ├── _search.styl │ │ │ │ │ ├── index.styl │ │ │ │ │ ├── _layout.styl │ │ │ │ │ └── _logo.styl │ │ │ │ └── Pisces │ │ │ │ │ ├── index.styl │ │ │ │ │ ├── _brand.styl │ │ │ │ │ └── _sub-menu.styl │ │ │ ├── _common │ │ │ │ ├── components │ │ │ │ │ ├── comments.styl │ │ │ │ │ ├── post │ │ │ │ │ │ ├── post-button.styl │ │ │ │ │ │ ├── post-tags.styl │ │ │ │ │ │ ├── post-rtl.styl │ │ │ │ │ │ ├── post-type.styl │ │ │ │ │ │ ├── post-reading_progress.styl │ │ │ │ │ │ ├── post-eof.styl │ │ │ │ │ │ ├── post-copyright.styl │ │ │ │ │ │ ├── post-gallery.styl │ │ │ │ │ │ ├── post-nav.styl │ │ │ │ │ │ ├── post-widgets.styl │ │ │ │ │ │ ├── post-meta.styl │ │ │ │ │ │ ├── post-title.styl │ │ │ │ │ │ ├── post-expand.styl │ │ │ │ │ │ └── post-reward.styl │ │ │ │ │ ├── third-party │ │ │ │ │ │ ├── han.styl │ │ │ │ │ │ ├── math.styl │ │ │ │ │ │ ├── gitalk.styl │ │ │ │ │ │ ├── gitment.styl │ │ │ │ │ │ ├── related-posts.styl │ │ │ │ │ │ ├── third-party.styl │ │ │ │ │ │ ├── needsharebutton.styl │ │ │ │ │ │ └── copy-code.styl │ │ │ │ │ ├── header │ │ │ │ │ │ ├── headerband.styl │ │ │ │ │ │ ├── header.styl │ │ │ │ │ │ ├── site-nav.styl │ │ │ │ │ │ ├── menu.styl │ │ │ │ │ │ ├── site-meta.styl │ │ │ │ │ │ └── github-banner.styl │ │ │ │ │ ├── pages │ │ │ │ │ │ ├── post-detail.styl │ │ │ │ │ │ ├── pages.styl │ │ │ │ │ │ ├── tag-cloud.styl │ │ │ │ │ │ ├── breadcrumb.styl │ │ │ │ │ │ ├── categories.styl │ │ │ │ │ │ └── archive.styl │ │ │ │ │ ├── tags │ │ │ │ │ │ ├── pdf.styl │ │ │ │ │ │ ├── full-image.styl │ │ │ │ │ │ ├── tags.styl │ │ │ │ │ │ ├── label.styl │ │ │ │ │ │ ├── group-pictures.styl │ │ │ │ │ │ └── blockquote-center.styl │ │ │ │ │ ├── highlight │ │ │ │ │ │ └── diff.styl │ │ │ │ │ ├── sidebar │ │ │ │ │ │ ├── sidebar-dimmer.styl │ │ │ │ │ │ ├── sidebar-button.styl │ │ │ │ │ │ ├── sidebar-blogroll.styl │ │ │ │ │ │ ├── sidebar-author-links.styl │ │ │ │ │ │ ├── sidebar-toggle.styl │ │ │ │ │ │ ├── sidebar-nav.styl │ │ │ │ │ │ ├── site-state.styl │ │ │ │ │ │ └── sidebar-author.styl │ │ │ │ │ ├── back-to-top-sidebar.styl │ │ │ │ │ ├── components.styl │ │ │ │ │ ├── scrollbar.styl │ │ │ │ │ ├── back-to-top.styl │ │ │ │ │ ├── footer │ │ │ │ │ │ └── footer.styl │ │ │ │ │ ├── buttons.styl │ │ │ │ │ └── rainbow.styl │ │ │ │ └── scaffolding │ │ │ │ │ ├── scaffolding.styl │ │ │ │ │ └── tables.styl │ │ │ └── _custom │ │ │ │ └── custom.styl │ │ ├── images │ │ │ ├── avatar.gif │ │ │ ├── loading.gif │ │ │ ├── placeholder.gif │ │ │ ├── searchicon.png │ │ │ ├── quote-r.svg │ │ │ ├── quote-l.svg │ │ │ └── logo.svg │ │ ├── lib │ │ │ ├── font-awesome │ │ │ │ ├── fonts │ │ │ │ │ ├── fontawesome-webfont.eot │ │ │ │ │ ├── fontawesome-webfont.woff │ │ │ │ │ └── fontawesome-webfont.woff2 │ │ │ │ ├── HELP-US-OUT.txt │ │ │ │ ├── .gitignore │ │ │ │ ├── bower.json │ │ │ │ └── .bower.json │ │ │ └── jquery_lazyload │ │ │ │ ├── bower.json │ │ │ │ ├── .bower.json │ │ │ │ └── README.md │ │ └── js │ │ │ ├── schemes │ │ │ └── muse.js │ │ │ └── scroll-cookie.js │ ├── languages │ │ └── default.yml │ ├── layout │ │ ├── _custom │ │ │ ├── header.swig │ │ │ ├── sidebar.swig │ │ │ └── head.swig │ │ ├── _scripts │ │ │ ├── schemes │ │ │ │ ├── mist.swig │ │ │ │ ├── gemini.swig │ │ │ │ ├── muse.swig │ │ │ │ └── pisces.swig │ │ │ ├── exturl.swig │ │ │ ├── pages │ │ │ │ └── post-details.swig │ │ │ ├── next-boot.swig │ │ │ ├── scroll-cookie.swig │ │ │ ├── commons.swig │ │ │ └── noscript.swig │ │ ├── _third-party │ │ │ ├── search │ │ │ │ ├── index.swig │ │ │ │ └── algolia-search.swig │ │ │ ├── tidio.swig │ │ │ ├── analytics │ │ │ │ ├── analytics-with-widget.swig │ │ │ │ ├── cnzz-analytics.swig │ │ │ │ ├── index.swig │ │ │ │ ├── tencent-analytics.swig │ │ │ │ ├── baidu-analytics.swig │ │ │ │ ├── tencent-mta.swig │ │ │ │ ├── growingio.swig │ │ │ │ ├── google-analytics.swig │ │ │ │ ├── facebook-sdk.swig │ │ │ │ ├── vkontakte-api.swig │ │ │ │ ├── application-insights.swig │ │ │ │ └── busuanzi-counter.swig │ │ │ ├── pangu.swig │ │ │ ├── math │ │ │ │ ├── katex.swig │ │ │ │ └── index.swig │ │ │ ├── comments │ │ │ │ ├── livere.swig │ │ │ │ ├── disqusjs.swig │ │ │ │ ├── index.swig │ │ │ │ └── valine.swig │ │ │ ├── baidu-push.swig │ │ │ ├── bookmark.swig │ │ │ ├── mermaid.swig │ │ │ ├── chatra.swig │ │ │ ├── rating.swig │ │ │ ├── pdf.swig │ │ │ ├── needsharebutton.swig │ │ │ └── quicklink.swig │ │ ├── _partials │ │ │ ├── share │ │ │ │ ├── add-this.swig │ │ │ │ └── likely.swig │ │ │ ├── post-edit.swig │ │ │ ├── header │ │ │ │ ├── my-sub-menu.swig │ │ │ │ └── index.swig │ │ │ ├── search │ │ │ │ ├── index.swig │ │ │ │ ├── swiftype.swig │ │ │ │ ├── localsearch.swig │ │ │ │ └── algolia-search.swig │ │ │ ├── post │ │ │ │ ├── wechat-subscriber.swig │ │ │ │ ├── reward.swig │ │ │ │ ├── post-related.swig │ │ │ │ └── post-copyright.swig │ │ │ ├── pagination.swig │ │ │ ├── page │ │ │ │ ├── page-header.swig │ │ │ │ └── breadcrumb.swig │ │ │ ├── head │ │ │ │ └── head-unique.swig │ │ │ └── github-banner.swig │ │ ├── _macro │ │ │ └── menu │ │ │ │ ├── menu-badge.swig │ │ │ │ └── menu-item.swig │ │ ├── schedule.swig │ │ ├── category-post.swig │ │ ├── post.swig │ │ ├── index.swig │ │ ├── tag.swig │ │ └── category.swig │ ├── .bowerrc │ ├── .eslintrc.json │ ├── .gitattributes │ ├── .github │ │ ├── topissuebot.yml │ │ ├── weekly-digest.yml │ │ ├── eslint-disable-bot.yml │ │ ├── auto_assign.yml │ │ ├── mergeable.yml │ │ ├── support.yml │ │ ├── release-drafter.yml │ │ └── stale.yml │ ├── .editorconfig │ ├── crowdin.yml │ ├── scripts │ │ ├── tags │ │ │ ├── pdf.js │ │ │ ├── video.js │ │ │ ├── mermaid.js │ │ │ ├── note.js │ │ │ ├── center-quote.js │ │ │ ├── label.js │ │ │ ├── include-raw.js │ │ │ ├── button.js │ │ │ └── full-image.js │ │ └── helpers │ │ │ └── engine.js │ ├── .gitignore │ ├── test │ │ └── .jshintrc │ ├── bower.json │ ├── .travis.yml │ ├── package.json │ └── .stylintrc └── landscape │ ├── .gitignore │ ├── layout │ ├── index.ejs │ ├── page.ejs │ ├── post.ejs │ ├── tag.ejs │ ├── archive.ejs │ ├── category.ejs │ ├── _partial │ │ ├── post │ │ │ ├── tag.ejs │ │ │ ├── date.ejs │ │ │ ├── category.ejs │ │ │ ├── gallery.ejs │ │ │ ├── title.ejs │ │ │ └── nav.ejs │ │ ├── mobile-nav.ejs │ │ ├── sidebar.ejs │ │ ├── archive-post.ejs │ │ ├── footer.ejs │ │ ├── google-analytics.ejs │ │ ├── after-footer.ejs │ │ ├── archive.ejs │ │ ├── header.ejs │ │ └── head.ejs │ ├── _widget │ │ ├── tagcloud.ejs │ │ ├── tag.ejs │ │ ├── category.ejs │ │ ├── archive.ejs │ │ └── recent_posts.ejs │ └── layout.ejs │ ├── source │ ├── fancybox │ │ ├── blank.gif │ │ ├── fancybox_loading.gif │ │ ├── fancybox_overlay.png │ │ ├── fancybox_sprite.png │ │ ├── fancybox_loading@2x.gif │ │ ├── fancybox_sprite@2x.png │ │ └── helpers │ │ │ ├── fancybox_buttons.png │ │ │ └── jquery.fancybox-thumbs.css │ └── css │ │ ├── images │ │ └── banner.jpg │ │ ├── fonts │ │ ├── FontAwesome.otf │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.ttf │ │ └── fontawesome-webfont.woff │ │ ├── _partial │ │ ├── comment.styl │ │ ├── footer.styl │ │ ├── mobile.styl │ │ ├── sidebar-bottom.styl │ │ ├── sidebar-aside.styl │ │ └── sidebar.styl │ │ ├── _util │ │ └── mixin.styl │ │ └── _extend.styl │ ├── package.json │ ├── languages │ ├── zh-CN.yml │ ├── zh-TW.yml │ ├── no.yml │ ├── default.yml │ ├── ru.yml │ ├── nl.yml │ └── fr.yml │ ├── _config.yml │ ├── scripts │ └── fancybox.js │ └── LICENSE ├── hexo-generator-tag ├── .eslintignore ├── .eslintrc ├── .jscsrc ├── index.js ├── README.md └── LICENSE ├── scaffolds ├── draft.md ├── page.md └── post.md ├── nohup.out ├── .gitignore ├── hexo-generator-index2 ├── .travis.yml └── LICENSE ├── hexo-generator-category ├── index.js ├── README.md └── LICENSE └── sitemap_template.xml /source/robots.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | } -------------------------------------------------------------------------------- /source/CNAME: -------------------------------------------------------------------------------- 1 | learnblockchain.cn -------------------------------------------------------------------------------- /themes/next/source/fonts/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /themes/next/languages/default.yml: -------------------------------------------------------------------------------- 1 | en.yml -------------------------------------------------------------------------------- /themes/next/layout/_custom/header.swig: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /themes/next/source/css/_mixins/Mist.styl: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /themes/next/source/css/_mixins/Muse.styl: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /themes/next/source/css/_mixins/custom.styl: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /themes/next/source/css/_variables/Muse.styl: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /themes/next/layout/_custom/sidebar.swig: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /themes/next/source/css/_variables/custom.styl: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /themes/landscape/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | tmp -------------------------------------------------------------------------------- /hexo-generator-tag/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | coverage/ 3 | tmp/ -------------------------------------------------------------------------------- /scaffolds/draft.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: {{ title }} 3 | tags: 4 | --- 5 | -------------------------------------------------------------------------------- /themes/next/.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "directory": "source/lib" 3 | } 4 | -------------------------------------------------------------------------------- /themes/next/layout/_custom/head.swig: -------------------------------------------------------------------------------- 1 | {# 2 | Custom head. 3 | #} 4 | -------------------------------------------------------------------------------- /source/_data/styles.styl: -------------------------------------------------------------------------------- 1 | // Custom styles. 2 | //img { display: inline; } -------------------------------------------------------------------------------- /themes/next/source/css/_mixins/Gemini.styl: -------------------------------------------------------------------------------- 1 | @import "Pisces.styl"; 2 | -------------------------------------------------------------------------------- /scaffolds/page.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: {{ title }} 3 | date: {{ date }} 4 | --- 5 | -------------------------------------------------------------------------------- /themes/next/layout/_scripts/schemes/mist.swig: -------------------------------------------------------------------------------- 1 | {% include 'muse.swig' %} 2 | -------------------------------------------------------------------------------- /hexo-generator-tag/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "hexo", 3 | "root": true 4 | } -------------------------------------------------------------------------------- /themes/next/layout/_scripts/schemes/gemini.swig: -------------------------------------------------------------------------------- 1 | {% include 'pisces.swig' %} 2 | -------------------------------------------------------------------------------- /themes/next/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "theme-next", 3 | "root": true 4 | } 5 | -------------------------------------------------------------------------------- /themes/next/source/css/_schemes/Mist/_logo.styl: -------------------------------------------------------------------------------- 1 | .site-subtitle { display: none; } 2 | -------------------------------------------------------------------------------- /source/_data/include-raw.html: -------------------------------------------------------------------------------- 1 | Any raw content may be included with this tag. -------------------------------------------------------------------------------- /source/zan.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/zan.jpeg -------------------------------------------------------------------------------- /source/books/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 区块链电子书 3 | date: 2019-04-11 22:44:20 4 | --- 5 | 6 | 7 | -------------------------------------------------------------------------------- /source/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/favicon.ico -------------------------------------------------------------------------------- /themes/landscape/layout/index.ejs: -------------------------------------------------------------------------------- 1 | <%- partial('_partial/archive', {pagination: 2, index: true}) %> -------------------------------------------------------------------------------- /themes/landscape/layout/page.ejs: -------------------------------------------------------------------------------- 1 | <%- partial('_partial/article', {post: page, index: false}) %> -------------------------------------------------------------------------------- /themes/landscape/layout/post.ejs: -------------------------------------------------------------------------------- 1 | <%- partial('_partial/article', {post: page, index: false}) %> -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/comments.styl: -------------------------------------------------------------------------------- 1 | .comments { margin: 60px 20px 0; } 2 | -------------------------------------------------------------------------------- /themes/next/source/css/_schemes/Mist/outline/outline.styl: -------------------------------------------------------------------------------- 1 | .main-inner { margin-top: 80px; } 2 | -------------------------------------------------------------------------------- /themes/next/.gitattributes: -------------------------------------------------------------------------------- 1 | source/lib/* linguist-vendored 2 | scripts/merge.js linguist-vendored 3 | -------------------------------------------------------------------------------- /source/_drafts/start-dapp.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: start_dapp 3 | date: 2018-08-09 17:07:15 4 | tags: 5 | --- 6 | -------------------------------------------------------------------------------- /source/images/qr_pay.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/images/qr_pay.jpg -------------------------------------------------------------------------------- /source/images/qrcode.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/images/qrcode.jpg -------------------------------------------------------------------------------- /source/images/zsxq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/images/zsxq.png -------------------------------------------------------------------------------- /themes/landscape/layout/tag.ejs: -------------------------------------------------------------------------------- 1 | <%- partial('_partial/archive', {pagination: config.tag, index: true}) %> -------------------------------------------------------------------------------- /nohup.out: -------------------------------------------------------------------------------- 1 | INFO Start processing 2 | INFO Hexo is running at http://localhost:4000/. Press Ctrl+C to stop. 3 | -------------------------------------------------------------------------------- /source/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/images/favicon.ico -------------------------------------------------------------------------------- /themes/landscape/layout/archive.ejs: -------------------------------------------------------------------------------- 1 | <%- partial('_partial/archive', {pagination: config.archive, index: true}) %> -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/post/post-button.styl: -------------------------------------------------------------------------------- 1 | .post-button { 2 | margin-top: 40px; 3 | } 4 | -------------------------------------------------------------------------------- /themes/landscape/layout/category.ejs: -------------------------------------------------------------------------------- 1 | <%- partial('_partial/archive', {pagination: config.category, index: true}) %> -------------------------------------------------------------------------------- /source/_posts/2019/assets/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_posts/2019/assets/1.png -------------------------------------------------------------------------------- /source/_posts/2019/assets/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_posts/2019/assets/2.png -------------------------------------------------------------------------------- /source/_posts/2019/assets/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_posts/2019/assets/3.png -------------------------------------------------------------------------------- /source/_posts/2019/assets/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_posts/2019/assets/4.png -------------------------------------------------------------------------------- /source/_posts/2019/assets/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_posts/2019/assets/5.png -------------------------------------------------------------------------------- /source/_posts/2019/assets/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_posts/2019/assets/6.png -------------------------------------------------------------------------------- /source/_posts/2019/assets/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_posts/2019/assets/7.png -------------------------------------------------------------------------------- /source/_posts/2019/assets/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_posts/2019/assets/8.png -------------------------------------------------------------------------------- /source/_posts/2019/assets/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_posts/2019/assets/9.png -------------------------------------------------------------------------------- /source/_posts/2019/assets/a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_posts/2019/assets/a.png -------------------------------------------------------------------------------- /source/_posts/2019/assets/b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_posts/2019/assets/b.png -------------------------------------------------------------------------------- /source/_posts/2019/assets/c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_posts/2019/assets/c.png -------------------------------------------------------------------------------- /source/_posts/2019/assets/d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_posts/2019/assets/d.png -------------------------------------------------------------------------------- /source/_posts/2019/media/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_posts/2019/media/1.png -------------------------------------------------------------------------------- /source/_posts/2019/media/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_posts/2019/media/2.png -------------------------------------------------------------------------------- /source/_posts/2019/media/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_posts/2019/media/3.png -------------------------------------------------------------------------------- /source/images/tiny_wx_code.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/images/tiny_wx_code.jpeg -------------------------------------------------------------------------------- /source/tags/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 博客文章标签 3 | date: 2017-10-24 21:11:50 4 | type: "tags" 5 | comments: false 6 | --- 7 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/third-party/han.styl: -------------------------------------------------------------------------------- 1 | i.fa { 2 | font-family: FontAwesome !important; 3 | } 4 | -------------------------------------------------------------------------------- /hexo-generator-tag/.jscsrc: -------------------------------------------------------------------------------- 1 | { 2 | "excludeFiles": ["node_modules/**", "coverage/**", "tmp/**"], 3 | "preset": "hexo" 4 | } -------------------------------------------------------------------------------- /source/_posts/2019-2/media/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_posts/2019-2/media/1.png -------------------------------------------------------------------------------- /source/_posts/2019-2/media/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_posts/2019-2/media/2.png -------------------------------------------------------------------------------- /source/_posts/2019-2/media/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_posts/2019-2/media/3.png -------------------------------------------------------------------------------- /source/_posts/2019-2/media/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_posts/2019-2/media/4.png -------------------------------------------------------------------------------- /source/_posts/2019-2/media/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_posts/2019-2/media/5.png -------------------------------------------------------------------------------- /source/_posts/2019/assets/sms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_posts/2019/assets/sms.png -------------------------------------------------------------------------------- /source/images/chainlab_qrcode.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/images/chainlab_qrcode.jpg -------------------------------------------------------------------------------- /themes/next/layout/_third-party/search/index.swig: -------------------------------------------------------------------------------- 1 | {% include 'localsearch.swig' %} 2 | {% include 'algolia-search.swig' %} 3 | -------------------------------------------------------------------------------- /source/_posts/2019/assets/email.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_posts/2019/assets/email.png -------------------------------------------------------------------------------- /source/_posts/2019/assets/jingdu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_posts/2019/assets/jingdu.png -------------------------------------------------------------------------------- /source/categories/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 博客文章分类 3 | date: 2017-10-24 21:14:00 4 | type: categories 5 | comments: false 6 | --- 7 | -------------------------------------------------------------------------------- /source/images/favicon-16x16-next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/images/favicon-16x16-next.png -------------------------------------------------------------------------------- /source/images/favicon-32x32-next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/images/favicon-32x32-next.png -------------------------------------------------------------------------------- /themes/next/source/images/avatar.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/themes/next/source/images/avatar.gif -------------------------------------------------------------------------------- /source/_posts/2019/assets/shuadan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_posts/2019/assets/shuadan.png -------------------------------------------------------------------------------- /source/images/apple-touch-icon-next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/images/apple-touch-icon-next.png -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/third-party/math.styl: -------------------------------------------------------------------------------- 1 | .has-jax { 2 | overflow-x: auto; 3 | overflow-y: hidden; 4 | } 5 | -------------------------------------------------------------------------------- /themes/next/source/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/themes/next/source/images/loading.gif -------------------------------------------------------------------------------- /themes/next/source/images/placeholder.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/themes/next/source/images/placeholder.gif -------------------------------------------------------------------------------- /themes/next/source/images/searchicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/themes/next/source/images/searchicon.png -------------------------------------------------------------------------------- /themes/landscape/source/fancybox/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/themes/landscape/source/fancybox/blank.gif -------------------------------------------------------------------------------- /themes/next/source/css/_schemes/Mist/sidebar/sidebar-blogroll.styl: -------------------------------------------------------------------------------- 1 | .links-of-blogroll-inline .links-of-blogroll-item { display: inline-block; } 2 | -------------------------------------------------------------------------------- /themes/next/source/css/_schemes/Muse/sidebar/sidebar-blogroll.styl: -------------------------------------------------------------------------------- 1 | .links-of-blogroll-inline .links-of-blogroll-item { display: inline-block; } 2 | -------------------------------------------------------------------------------- /themes/landscape/source/css/images/banner.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/themes/landscape/source/css/images/banner.jpg -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/header/headerband.styl: -------------------------------------------------------------------------------- 1 | .headband { 2 | height: $headband-height; 3 | background: $headband-bg; 4 | } 5 | -------------------------------------------------------------------------------- /source/_drafts/media/1*5abTUgF0OYIi6hqmfWgaLg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_drafts/media/1*5abTUgF0OYIi6hqmfWgaLg.png -------------------------------------------------------------------------------- /source/_drafts/media/1*AXHP2zJ5oQh7GD7VbmHJ0Q.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_drafts/media/1*AXHP2zJ5oQh7GD7VbmHJ0Q.png -------------------------------------------------------------------------------- /source/_drafts/media/1*GEjr7Z6Z9kx0bI-Tj_Dvcw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_drafts/media/1*GEjr7Z6Z9kx0bI-Tj_Dvcw.png -------------------------------------------------------------------------------- /source/_drafts/media/1*MJMd3OVd89GDUUyjluPmSQ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_drafts/media/1*MJMd3OVd89GDUUyjluPmSQ.png -------------------------------------------------------------------------------- /source/_drafts/media/1*ROCHY_hAg0KICQD1yWH_dA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_drafts/media/1*ROCHY_hAg0KICQD1yWH_dA.png -------------------------------------------------------------------------------- /source/_drafts/media/1*S9Mv3bEQ7BcX12mX6LI_pQ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_drafts/media/1*S9Mv3bEQ7BcX12mX6LI_pQ.png -------------------------------------------------------------------------------- /source/_drafts/media/1*VIMfRRhgaSp9yM-GUZUyew.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_drafts/media/1*VIMfRRhgaSp9yM-GUZUyew.png -------------------------------------------------------------------------------- /source/_drafts/media/1*WPK5t9zuCyMob5FgPkoHUw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_drafts/media/1*WPK5t9zuCyMob5FgPkoHUw.png -------------------------------------------------------------------------------- /source/_drafts/media/1*arn5LoSL2gHyerJo4btuow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_drafts/media/1*arn5LoSL2gHyerJo4btuow.png -------------------------------------------------------------------------------- /source/_drafts/media/1*eInpO0XUlqf3iSrxdqcXww.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_drafts/media/1*eInpO0XUlqf3iSrxdqcXww.png -------------------------------------------------------------------------------- /source/_drafts/media/1*n3aZX6SuGVUlEClhslAuyQ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_drafts/media/1*n3aZX6SuGVUlEClhslAuyQ.png -------------------------------------------------------------------------------- /source/_drafts/media/1*oPQWZ02lYP_0Lr8DcB0rEg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_drafts/media/1*oPQWZ02lYP_0Lr8DcB0rEg.png -------------------------------------------------------------------------------- /source/_drafts/media/1*ol2K7Jw62d2pUfXSq3jZEA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_drafts/media/1*ol2K7Jw62d2pUfXSq3jZEA.png -------------------------------------------------------------------------------- /source/_drafts/media/1*pSsgz1p596AIjg4-T6cPqA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_drafts/media/1*pSsgz1p596AIjg4-T6cPqA.png -------------------------------------------------------------------------------- /source/_drafts/media/1*q9UITlXmxZbulguIuZDPog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_drafts/media/1*q9UITlXmxZbulguIuZDPog.png -------------------------------------------------------------------------------- /source/_drafts/media/1*r0QZJUgoJnhrX_8XO6CywA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_drafts/media/1*r0QZJUgoJnhrX_8XO6CywA.png -------------------------------------------------------------------------------- /source/_drafts/media/1*vFQ9VZjgzp8jM9zjs0nAwg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_drafts/media/1*vFQ9VZjgzp8jM9zjs0nAwg.png -------------------------------------------------------------------------------- /source/_drafts/media/1*wZFuAXBRB_JcvcTncwI82w.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_drafts/media/1*wZFuAXBRB_JcvcTncwI82w.png -------------------------------------------------------------------------------- /source/_drafts/media/1*wsfcuDbXnSeVJHCA611oyg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_drafts/media/1*wsfcuDbXnSeVJHCA611oyg.png -------------------------------------------------------------------------------- /themes/landscape/source/css/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/themes/landscape/source/css/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /source/_drafts/media/1*0Vx8w-x6DAtkN4M82h4aQg.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_drafts/media/1*0Vx8w-x6DAtkN4M82h4aQg.jpeg -------------------------------------------------------------------------------- /source/_drafts/media/1*85sZnSyE6JrAePicn5tzaQ.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_drafts/media/1*85sZnSyE6JrAePicn5tzaQ.jpeg -------------------------------------------------------------------------------- /source/_drafts/media/1*KdnauUQ2IPzglnCVAFrdyg.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_drafts/media/1*KdnauUQ2IPzglnCVAFrdyg.jpeg -------------------------------------------------------------------------------- /source/_drafts/media/1*MJMd3OVd89GDUUyjluPmSQ-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_drafts/media/1*MJMd3OVd89GDUUyjluPmSQ-1.png -------------------------------------------------------------------------------- /source/_drafts/media/1*ZWQMcP4fEEoBdF-E9WKyOw.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_drafts/media/1*ZWQMcP4fEEoBdF-E9WKyOw.jpeg -------------------------------------------------------------------------------- /source/_posts/2019/assets/User-Authentication1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_posts/2019/assets/User-Authentication1.png -------------------------------------------------------------------------------- /source/_posts/2019/assets/User-Authentication2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_posts/2019/assets/User-Authentication2.png -------------------------------------------------------------------------------- /source/_posts/2019/assets/User-Authentication3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_posts/2019/assets/User-Authentication3.png -------------------------------------------------------------------------------- /themes/next/layout/_scripts/exturl.swig: -------------------------------------------------------------------------------- 1 | {% if theme.exturl %} 2 | 3 | {% endif %} 4 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/tidio.swig: -------------------------------------------------------------------------------- 1 | {% if theme.tidio.enable %} 2 | 3 | {% endif %} 4 | -------------------------------------------------------------------------------- /source/_posts/2019/assets/Security-Configuration1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_posts/2019/assets/Security-Configuration1.png -------------------------------------------------------------------------------- /source/_posts/2019/assets/Security-Configuration2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_posts/2019/assets/Security-Configuration2.png -------------------------------------------------------------------------------- /source/_posts/2019/assets/Security-Configuration3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/source/_posts/2019/assets/Security-Configuration3.png -------------------------------------------------------------------------------- /themes/landscape/source/fancybox/fancybox_loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/themes/landscape/source/fancybox/fancybox_loading.gif -------------------------------------------------------------------------------- /themes/landscape/source/fancybox/fancybox_overlay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/themes/landscape/source/fancybox/fancybox_overlay.png -------------------------------------------------------------------------------- /themes/landscape/source/fancybox/fancybox_sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/themes/landscape/source/fancybox/fancybox_sprite.png -------------------------------------------------------------------------------- /themes/next/source/css/_schemes/Mist/_search.styl: -------------------------------------------------------------------------------- 1 | // Search 2 | // -------------------------------------------------- 3 | .site-search form { 4 | hide(); 5 | } 6 | -------------------------------------------------------------------------------- /themes/next/source/css/_schemes/Muse/_search.styl: -------------------------------------------------------------------------------- 1 | // Search 2 | // -------------------------------------------------- 3 | .site-search form { 4 | hide(); 5 | } 6 | -------------------------------------------------------------------------------- /themes/next/source/css/_schemes/Pisces/index.styl: -------------------------------------------------------------------------------- 1 | @import "_layout"; 2 | @import "_brand"; 3 | @import "_menu"; 4 | @import "_sub-menu"; 5 | @import "_sidebar"; 6 | -------------------------------------------------------------------------------- /scaffolds/post.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: {{ title }} 3 | permalink: {{ title }} 4 | date: {{ date }} 5 | categories: 6 | tags: 7 | author: 8 | un_reward: true 9 | --- 10 | -------------------------------------------------------------------------------- /themes/landscape/source/fancybox/fancybox_loading@2x.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/themes/landscape/source/fancybox/fancybox_loading@2x.gif -------------------------------------------------------------------------------- /themes/landscape/source/fancybox/fancybox_sprite@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/themes/landscape/source/fancybox/fancybox_sprite@2x.png -------------------------------------------------------------------------------- /themes/landscape/source/css/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/themes/landscape/source/css/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /themes/landscape/source/css/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/themes/landscape/source/css/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /themes/landscape/source/css/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/themes/landscape/source/css/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /themes/landscape/source/fancybox/helpers/fancybox_buttons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/themes/landscape/source/fancybox/helpers/fancybox_buttons.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | Thumbs.db 3 | db.json 4 | *.log 5 | node_modules/ 6 | public/ 7 | .deploy*/ 8 | .npmignore 9 | source/_posts/2019/images/* 10 | source/.MWebMetaData 11 | 12 | -------------------------------------------------------------------------------- /themes/next/source/lib/font-awesome/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/themes/next/source/lib/font-awesome/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /themes/next/source/lib/font-awesome/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/themes/next/source/lib/font-awesome/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /themes/next/source/css/_schemes/Muse/index.styl: -------------------------------------------------------------------------------- 1 | @import "_layout.styl"; 2 | @import "_logo.styl"; 3 | @import "_menu.styl"; 4 | @import "_search.styl"; 5 | @import "sidebar/sidebar-blogroll"; 6 | -------------------------------------------------------------------------------- /themes/next/source/lib/font-awesome/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbc-team/learnblockchain/HEAD/themes/next/source/lib/font-awesome/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /themes/landscape/layout/_partial/post/tag.ejs: -------------------------------------------------------------------------------- 1 | <% if (post.tags && post.tags.length){ %> 2 | <%- list_tags(post.tags, { 3 | show_count: false, 4 | class: 'article-tag' 5 | }) %> 6 | <% } %> -------------------------------------------------------------------------------- /themes/next/.github/topissuebot.yml: -------------------------------------------------------------------------------- 1 | # Configuration for top-issue-bot - https://github.com/adamzolyak/gh-vote-bot 2 | 3 | labelName: '👍 Top Issue!' 4 | labelColor: '006b75' 5 | numberOfIssuesToLabel: 10 6 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/pages/post-detail.styl: -------------------------------------------------------------------------------- 1 | .page-post-detail { 2 | 3 | .sidebar-toggle-line { background: $sidebar-highlight; } 4 | 5 | .comments { overflow: hidden; } 6 | } 7 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/tags/pdf.styl: -------------------------------------------------------------------------------- 1 | .pdfobject-container { 2 | position: relative; 3 | overflow: auto; 4 | width: 100%; 5 | height: unquote(hexo-config('pdf.height')); 6 | } 7 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/third-party/gitalk.styl: -------------------------------------------------------------------------------- 1 | .gt-header a, .gt-comments a, .gt-popup a 2 | border-bottom: none; 3 | .gt-container .gt-popup .gt-action.is--active:before 4 | top: 0.7em; -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/tags/full-image.styl: -------------------------------------------------------------------------------- 1 | .posts-expand .post-body img.full-image { 2 | border: none; 3 | //max-width: 100%; 4 | //width: auto; 5 | //margin: 20px auto 25px; 6 | } 7 | -------------------------------------------------------------------------------- /themes/landscape/layout/_partial/mobile-nav.ejs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /themes/next/layout/_scripts/pages/post-details.swig: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /themes/next/layout/_partials/share/add-this.swig: -------------------------------------------------------------------------------- 1 |
2 | 3 |
4 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/analytics/analytics-with-widget.swig: -------------------------------------------------------------------------------- 1 | {% include 'busuanzi-counter.swig' %} 2 | {% include 'tencent-mta.swig' %} 3 | {% include 'tencent-analytics.swig' %} 4 | {% include 'cnzz-analytics.swig' %} 5 | -------------------------------------------------------------------------------- /themes/landscape/layout/_partial/post/date.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /themes/next/source/css/_schemes/Mist/_base.styl: -------------------------------------------------------------------------------- 1 | // Tags 2 | // -------------------------------------------------- 3 | 4 | a { border-bottom-color: $grey-light; } 5 | 6 | hr { 7 | margin: 20px 0; 8 | height: 2px; 9 | } 10 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/pages/pages.styl: -------------------------------------------------------------------------------- 1 | // Page specific styles 2 | 3 | @import "archive"; 4 | @import "categories"; 5 | @import "schedule"; 6 | @import "post-detail"; 7 | @import "breadcrumb"; 8 | @import "tag-cloud"; 9 | -------------------------------------------------------------------------------- /themes/landscape/layout/_partial/sidebar.ejs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /themes/next/source/css/_schemes/Muse/_layout.styl: -------------------------------------------------------------------------------- 1 | .header-inner, .container .main-inner, .footer-inner { 2 | +mobile() { width: auto; } 3 | } 4 | 5 | // embed tag 6 | embed { 7 | show(); 8 | margin: 0px auto 25px auto; 9 | } 10 | -------------------------------------------------------------------------------- /themes/next/layout/_scripts/next-boot.swig: -------------------------------------------------------------------------------- 1 | {% 2 | set boot_scripts = [ 3 | 'next-boot.js' 4 | ] 5 | %} 6 | 7 | {% for bs in boot_scripts %} 8 | 9 | {% endfor %} 10 | -------------------------------------------------------------------------------- /themes/next/layout/_scripts/schemes/muse.swig: -------------------------------------------------------------------------------- 1 | {% 2 | set scripts = [ 3 | 'schemes/muse.js' 4 | ] 5 | %} 6 | 7 | {% for script in scripts %} 8 | 9 | {% endfor %} 10 | -------------------------------------------------------------------------------- /themes/next/layout/_scripts/scroll-cookie.swig: -------------------------------------------------------------------------------- 1 | {% if theme.save_scroll %} 2 | 3 | 4 | {% endif %} 5 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/post/post-tags.styl: -------------------------------------------------------------------------------- 1 | .posts-expand .post-tags { 2 | margin-top: 40px; 3 | text-align: center; 4 | 5 | a { 6 | display: inline-block; 7 | margin-right: 10px; 8 | font-size: 13px; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /themes/landscape/layout/_widget/tagcloud.ejs: -------------------------------------------------------------------------------- 1 | <% if (site.tags.length){ %> 2 |
3 |

<%= __('tagcloud') %>

4 |
5 | <%- tagcloud() %> 6 |
7 |
8 | <% } %> -------------------------------------------------------------------------------- /themes/landscape/source/css/_partial/comment.styl: -------------------------------------------------------------------------------- 1 | #comments 2 | background: #fff 3 | box-shadow: 1px 2px 3px #ddd 4 | padding: article-padding 5 | border: 1px solid color-border 6 | border-radius: 3px 7 | margin: block-margin 0 8 | a 9 | color: color-link -------------------------------------------------------------------------------- /themes/next/layout/_third-party/analytics/cnzz-analytics.swig: -------------------------------------------------------------------------------- 1 | {% if theme.cnzz_siteid %} 2 |
3 | 4 |
5 | {% endif %} 6 | -------------------------------------------------------------------------------- /themes/next/layout/_partials/post-edit.swig: -------------------------------------------------------------------------------- 1 | {% if theme.post_edit.enable -%} 2 | {% set editIcon = '' -%} 3 | {{ next_url(theme.post_edit.url + page.source, editIcon, {class: 'post-edit-link', title: __('post.edit') }) }} 4 | {%- endif %} 5 | -------------------------------------------------------------------------------- /themes/next/layout/_scripts/commons.swig: -------------------------------------------------------------------------------- 1 | {% 2 | set js_commons = [ 3 | 'utils.js', 4 | 'motion.js' 5 | ] 6 | %} 7 | 8 | {% for common in js_commons %} 9 | 10 | {% endfor %} 11 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/pages/tag-cloud.styl: -------------------------------------------------------------------------------- 1 | .tag-cloud { 2 | text-align: center; 3 | 4 | a { 5 | display: inline-block; 6 | margin: 10px; 7 | } 8 | 9 | a:hover { 10 | color: $link-hover-color !important; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /themes/landscape/layout/_widget/tag.ejs: -------------------------------------------------------------------------------- 1 | <% if (site.tags.length){ %> 2 |
3 |

<%= __('tags') %>

4 |
5 | <%- list_tags({show_count: theme.show_count}) %> 6 |
7 |
8 | <% } %> 9 | -------------------------------------------------------------------------------- /themes/next/.editorconfig: -------------------------------------------------------------------------------- 1 | # editorconfig.org 2 | 3 | root = true 4 | 5 | [*] 6 | charset = utf-8 7 | end_of_line = lf 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | indent_style = space 11 | indent_size = 2 12 | 13 | [*.py] 14 | indent_size = 4 15 | -------------------------------------------------------------------------------- /themes/next/layout/_scripts/schemes/pisces.swig: -------------------------------------------------------------------------------- 1 | {% 2 | set scripts = [ 3 | 'affix.js', 4 | 'schemes/pisces.js' 5 | ] 6 | %} 7 | 8 | {% for script in scripts %} 9 | 10 | {% endfor %} 11 | -------------------------------------------------------------------------------- /source/_drafts/wallet-web3.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: wallet-web3 3 | permalink: wallet-web3 4 | un_reward: true 5 | date: 2019-03-21 15:20:06 6 | categories: 7 | tags: 8 | author: 9 | --- 10 | 11 | 12 | 13 | https://github.com/TrustWallet/trust-web3-provider 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /themes/next/.github/weekly-digest.yml: -------------------------------------------------------------------------------- 1 | # Configuration for weekly-digest - https://github.com/apps/weekly-digest 2 | 3 | publishDay: sun 4 | canPublishIssues: true 5 | canPublishPullRequests: true 6 | canPublishContributors: true 7 | canPublishStargazers: true 8 | canPublishCommits: true 9 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/analytics/index.swig: -------------------------------------------------------------------------------- 1 | {% include 'facebook-sdk.swig' %} 2 | {% include 'vkontakte-api.swig' %} 3 | {% include 'google-analytics.swig' %} 4 | {% include 'baidu-analytics.swig' %} 5 | {% include 'application-insights.swig' %} 6 | {% include 'growingio.swig' %} 7 | -------------------------------------------------------------------------------- /themes/next/layout/_partials/header/my-sub-menu.swig: -------------------------------------------------------------------------------- 1 | {% import '../../_macro/menu/menu-item.swig' as menu_item %} 2 | 3 | 8 | 9 | -------------------------------------------------------------------------------- /themes/next/layout/_partials/search/index.swig: -------------------------------------------------------------------------------- 1 | {% if theme.algolia_search.enable %} 2 | {% include 'algolia-search.swig' %} 3 | {% elif theme.swiftype_key %} 4 | {% include 'swiftype.swig' %} 5 | {% elif theme.local_search.enable %} 6 | {% include 'localsearch.swig' %} 7 | {% endif %} 8 | -------------------------------------------------------------------------------- /themes/next/crowdin.yml: -------------------------------------------------------------------------------- 1 | files: 2 | - source: /languages/en.yml 3 | translation: /languages/%two_letters_code%.%file_extension% 4 | languages_mapping: 5 | two_letters_code: 6 | zh-CN: zh-CN 7 | zh-TW: zh-TW 8 | zh-HK: zh-HK 9 | pt-BR: pt-BR 10 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/post/post-rtl.styl: -------------------------------------------------------------------------------- 1 | .rtl { 2 | &.post-body { 3 | p, a, h1, h2, h3, h4, h5, h6, li, ul, ol { 4 | direction: rtl; 5 | font-family: UKIJ Ekran; 6 | } 7 | } 8 | &.post-title { 9 | font-family: UKIJ Ekran; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /themes/landscape/layout/_widget/category.ejs: -------------------------------------------------------------------------------- 1 | <% if (site.categories.length){ %> 2 |
3 |

<%= __('categories') %>

4 |
5 | <%- list_categories({show_count: theme.show_count}) %> 6 |
7 |
8 | <% } %> 9 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/scaffolding/scaffolding.styl: -------------------------------------------------------------------------------- 1 | // 2 | // Scaffolding 3 | // ================================================= 4 | 5 | @import "normalize"; 6 | @import "base"; 7 | @import "helpers"; 8 | @import "tables"; 9 | @import "mobile" if hexo-config('mobile_layout_economy'); 10 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/header/header.styl: -------------------------------------------------------------------------------- 1 | .header { background: $head-bg; } 2 | 3 | .header-inner { position: relative; } 4 | 5 | @import "headerband"; 6 | @import "site-meta"; 7 | @import "site-nav"; 8 | @import "menu"; 9 | @import "github-banner" if hexo-config('github_banner.enable'); 10 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/highlight/diff.styl: -------------------------------------------------------------------------------- 1 | $highlight_theme = hexo-config("highlight_theme") 2 | 3 | if $highlight_theme == "normal" 4 | $highlight-deletion = #fdd 5 | $highlight-addition = #dfd 6 | else 7 | $highlight-deletion = #800000 8 | $highlight-addition = #008000 9 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/post/post-type.styl: -------------------------------------------------------------------------------- 1 | // TODO: Refactor. 2 | 3 | .page-home, .page-post-detail { 4 | .post-type-quote { 5 | .post-header, 6 | .post-tags { 7 | hide(); 8 | } 9 | 10 | blockquote { 11 | @extend .blockquote-center 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /hexo-generator-index2/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node-js: 3 | - "4" 4 | 5 | cache: 6 | apt: true 7 | directories: 8 | - node_modules 9 | 10 | before_install: 11 | # - npm install object-assign --save 12 | # - npm install hexo-pagination --save 13 | 14 | script: 15 | - npm test 16 | 17 | -------------------------------------------------------------------------------- /themes/landscape/layout/_widget/archive.ejs: -------------------------------------------------------------------------------- 1 | <% if (site.posts.length){ %> 2 |
3 |

<%= __('archive_a') %>

4 |
5 | <%- list_archives({show_count: theme.show_count, type: theme.archive_type}) %> 6 |
7 |
8 | <% } %> 9 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/tags/tags.styl: -------------------------------------------------------------------------------- 1 | @import "full-image"; 2 | @import "blockquote-center"; 3 | @import "group-pictures"; 4 | @import "label"; 5 | @import "note" if not hexo-config('note.style') == 'disabled'; 6 | @import "tabs" if hexo-config('tabs.enable'); 7 | @import "pdf" if hexo-config('pdf.enable'); 8 | -------------------------------------------------------------------------------- /source/_posts/.MWebMetaData/setting.json: -------------------------------------------------------------------------------- 1 | { 2 | "name" : "_posts", 3 | "fileExtension" : ".md", 4 | "autoUploadInsertedImageKey" : "image-learnblog-https:\/\/v0.api.upyun.com\/", 5 | "autoUploadInsertedImage" : true, 6 | "folderType" : 10, 7 | "mediaFloder" : "media", 8 | "orderBy" : 0, 9 | "newlinesToBR" : 0 10 | } -------------------------------------------------------------------------------- /hexo-generator-category/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var assign = require('object-assign'); 4 | 5 | hexo.config.category_generator = assign({ 6 | per_page: typeof hexo.config.per_page === "undefined" ? 10 : hexo.config.per_page 7 | }, hexo.config.category_generator); 8 | 9 | hexo.extend.generator.register('category', require('./lib/generator')); -------------------------------------------------------------------------------- /themes/landscape/layout/_partial/post/category.ejs: -------------------------------------------------------------------------------- 1 | <% if (post.categories && post.categories.length){ %> 2 |
3 | <%- list_categories(post.categories, { 4 | show_count: false, 5 | class: 'article-category', 6 | style: 'none', 7 | separator: '►' 8 | }) %> 9 |
10 | <% } %> -------------------------------------------------------------------------------- /themes/landscape/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "hexo-theme-landscape", 3 | "version": "0.0.1", 4 | "private": true, 5 | "devDependencies": { 6 | "grunt": "~0.4.2", 7 | "load-grunt-tasks": "~0.2.0", 8 | "grunt-git": "~0.2.2", 9 | "grunt-contrib-clean": "~0.5.0", 10 | "grunt-contrib-copy": "~0.4.1" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/post/post-reading_progress.styl: -------------------------------------------------------------------------------- 1 | .reading-progress-bar { 2 | position: fixed; 3 | top: 0; 4 | left: 0; 5 | z-index: 9999; 6 | show(); 7 | width: 0; 8 | height: unquote(hexo-config('reading_progress.height')); 9 | background: unquote(hexo-config('reading_progress.color')); 10 | } 11 | -------------------------------------------------------------------------------- /hexo-generator-tag/index.js: -------------------------------------------------------------------------------- 1 | /* global hexo */ 2 | 'use strict'; 3 | 4 | var assign = require('object-assign'); 5 | 6 | hexo.config.tag_generator = assign({ 7 | per_page: hexo.config.per_page == null ? 10 : hexo.config.per_page 8 | }, hexo.config.tag_generator); 9 | 10 | hexo.extend.generator.register('tag', require('./lib/generator')); 11 | -------------------------------------------------------------------------------- /themes/next/scripts/tags/pdf.js: -------------------------------------------------------------------------------- 1 | /** 2 | * pdf.js | https://theme-next.org/docs/tag-plugins/pdf 3 | */ 4 | 5 | /* global hexo */ 6 | 7 | 'use strict'; 8 | 9 | function pdf(args) { 10 | return `
`; 11 | } 12 | 13 | hexo.extend.tag.register('pdf', pdf, {ends: false}); 14 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/pangu.swig: -------------------------------------------------------------------------------- 1 | {% if theme.pangu %} 2 | {% set pangu_uri = url_for(theme.vendors._internal + '/pangu/dist/pangu.min.js?v=3.3') %} 3 | {% if theme.vendors.pangu %} 4 | {% set pangu_uri = theme.vendors.pangu %} 5 | {% endif %} 6 | 7 | 8 | {% endif %} 9 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/post/post-eof.styl: -------------------------------------------------------------------------------- 1 | .posts-expand { 2 | .post-eof { 3 | margin: $post-eof-margin-top auto $post-eof-margin-bottom; 4 | width: 8%; 5 | height: 1px; 6 | background: $grey-light; 7 | text-align: center; 8 | } 9 | } 10 | 11 | .post:last-child { 12 | .post-eof { 13 | hide(); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /themes/landscape/languages/zh-CN.yml: -------------------------------------------------------------------------------- 1 | categories: 分类 2 | search: 搜索 3 | tags: 标签 4 | tagcloud: 标签云 5 | tweets: 推文 6 | prev: 上一页 7 | next: 下一页 8 | comment: 留言 9 | archive_a: 归档 10 | archive_b: 归档:%s 11 | page: 第 %d 页 12 | recent_posts: 最新文章 13 | newer: Newer 14 | older: Older 15 | share: Share 16 | powered_by: Powered by 17 | rss_feed: RSS Feed 18 | category: Category 19 | tag: Tag -------------------------------------------------------------------------------- /themes/landscape/languages/zh-TW.yml: -------------------------------------------------------------------------------- 1 | categories: 分類 2 | search: 搜尋 3 | tags: 標籤 4 | tagcloud: 標籤雲 5 | tweets: 推文 6 | prev: 上一頁 7 | next: 下一頁 8 | comment: 留言 9 | archive_a: 彙整 10 | archive_b: 彙整:%s 11 | page: 第 %d 頁 12 | recent_posts: 最新文章 13 | newer: Newer 14 | older: Older 15 | share: Share 16 | powered_by: Powered by 17 | rss_feed: RSS Feed 18 | category: Category 19 | tag: Tag -------------------------------------------------------------------------------- /themes/landscape/source/css/_partial/footer.styl: -------------------------------------------------------------------------------- 1 | #footer 2 | background: color-footer-background 3 | padding: 50px 0 4 | border-top: 1px solid color-border 5 | color: color-grey 6 | a 7 | color: color-link 8 | text-decoration: none 9 | &:hover 10 | text-decoration: underline 11 | 12 | #footer-info 13 | line-height: line-height 14 | font-size: 0.85em -------------------------------------------------------------------------------- /themes/next/source/lib/font-awesome/HELP-US-OUT.txt: -------------------------------------------------------------------------------- 1 | I hope you love Font Awesome. If you've found it useful, please do me a favor and check out my latest project, 2 | Fort Awesome (https://fortawesome.com). It makes it easy to put the perfect icons on your website. Choose from our awesome, 3 | comprehensive icon sets or copy and paste your own. 4 | 5 | Please. Check it out. 6 | 7 | -Dave Gandy 8 | -------------------------------------------------------------------------------- /themes/next/layout/_partials/post/wechat-subscriber.swig: -------------------------------------------------------------------------------- 1 |
2 | {{ author }} wechat 3 |
{{ theme.wechat_subscriber.description }}
4 |
5 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/post/post-copyright.styl: -------------------------------------------------------------------------------- 1 | .post-copyright { 2 | margin: $post-copyright.margin; 3 | padding: $post-copyright.padding; 4 | border-left: $post-copyright.border.width $post-copyright.border.style $post-copyright.border.color; 5 | background-color: $post-copyright.bg; 6 | list-style: none; 7 | 8 | i.fa { 9 | font-size: 15px; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /themes/next/layout/_macro/menu/menu-badge.swig: -------------------------------------------------------------------------------- 1 | {% macro render(name) %} 2 | 3 | {% set badges = { 4 | archives: site.posts.length, 5 | categories: site.categories.length, 6 | tags: site.tags.length } 7 | %} 8 | {% for menu, count in badges %} 9 | {% if name == menu %} 10 | {{ count }} 11 | {% endif %} 12 | {% endfor %} 13 | 14 | {% endmacro %} 15 | -------------------------------------------------------------------------------- /themes/next/layout/_partials/header/index.swig: -------------------------------------------------------------------------------- 1 | {{ partial('_partials/header/brand.swig', {}, {cache: theme.cache.enable}) }} 2 | {% include 'menu.swig' %} 3 | 4 | {% if theme.custom_file_path.header %} 5 | {% set custom_header = '../../../../../' + theme.custom_file_path.header %} 6 | {% else %} 7 | {% set custom_header = '../../_custom/header.swig' %} 8 | {% endif %} 9 | {% include custom_header %} 10 | -------------------------------------------------------------------------------- /themes/landscape/layout/_partial/archive-post.ejs: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | <%- partial('post/date', {class_name: 'archive-article-date', date_format: 'MMM D'}) %> 5 | <%- partial('post/title', {class_name: 'archive-article-title'}) %> 6 |
7 |
8 |
-------------------------------------------------------------------------------- /themes/next/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .idea/ 3 | *.log 4 | *.iml 5 | yarn.lock 6 | package-lock.json 7 | node_modules/ 8 | 9 | # Ignore optional external libraries 10 | source/lib/* 11 | 12 | # Track internal libraries & Ignore unused verdors files 13 | source/lib/font-awesome/less/ 14 | source/lib/font-awesome/scss/ 15 | !source/lib/font-awesome/* 16 | 17 | !source/lib/jquery/ 18 | 19 | !source/lib/velocity/ 20 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/analytics/tencent-analytics.swig: -------------------------------------------------------------------------------- 1 | {% if theme.tencent_analytics %} 2 | 10 | {% endif %} 11 | -------------------------------------------------------------------------------- /themes/next/layout/schedule.swig: -------------------------------------------------------------------------------- 1 | {% block content %} 2 | {######################} 3 | {### SCHEDULE BLOCK ###} 4 | {######################} 5 |
6 |
7 | 9 |
10 |
11 | {##########################} 12 | {### END SCHEDULE BLOCK ###} 13 | {##########################} 14 | {% endblock %} 15 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/sidebar/sidebar-dimmer.styl: -------------------------------------------------------------------------------- 1 | .sidebar-active + #sidebar-dimmer { 2 | +mobile() { 3 | opacity: .7; 4 | transition: opacity .5s; 5 | } 6 | transform: translateX(-100%); 7 | } 8 | 9 | #sidebar-dimmer { 10 | show(); 11 | position: fixed; 12 | top: 0; 13 | left: 100%; 14 | width: 100%; 15 | height: 100%; 16 | background: #000; 17 | opacity: 0; 18 | } 19 | -------------------------------------------------------------------------------- /themes/next/scripts/tags/video.js: -------------------------------------------------------------------------------- 1 | /** 2 | * video.js | https://theme-next.org/docs/tag-plugins/video 3 | */ 4 | 5 | /* global hexo */ 6 | 7 | 'use strict'; 8 | 9 | function postVideo(args) { 10 | return ``; 11 | } 12 | 13 | hexo.extend.tag.register('video', postVideo, {ends: false}); 14 | -------------------------------------------------------------------------------- /source/_drafts/erc223.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: erc223 3 | date: 2018-06-30 11:21:26 4 | tags: 5 | --- 6 | 7 | 8 | ## ERC223 注意的问题 9 | 10 | 11 | https://github.com/ATNIO/atn-contracts/blob/7203781ad8d106ec6d1f9ca8305e76dd1274b181/src/ATN.sol#L100 12 | 13 | 黑客利用ERC223方法漏洞,获得提权,将自己的地址设为owner 14 | 15 | 16 | 17 | https://atn.io/resource/aareport.pdf 18 | 19 | call 注入攻击问题 20 | 21 | https://mp.weixin.qq.com/s/l3QBZwacLjIzu6KlpUvuWw -------------------------------------------------------------------------------- /themes/landscape/languages/no.yml: -------------------------------------------------------------------------------- 1 | categories: Kategorier 2 | search: Søk 3 | tags: Tags 4 | tagcloud: Tag Cloud 5 | tweets: Tweets 6 | prev: Forrige 7 | next: Neste 8 | comment: Kommentarer 9 | archive_a: Arkiv 10 | archive_b: "Arkiv: %s" 11 | page: Side %d 12 | recent_posts: Siste innlegg 13 | newer: Newer 14 | older: Older 15 | share: Share 16 | powered_by: Powered by 17 | rss_feed: RSS Feed 18 | category: Category 19 | tag: Tag -------------------------------------------------------------------------------- /themes/landscape/languages/default.yml: -------------------------------------------------------------------------------- 1 | categories: Categories 2 | search: Search 3 | tags: Tags 4 | tagcloud: Tag Cloud 5 | tweets: Tweets 6 | prev: Prev 7 | next: Next 8 | comment: Comments 9 | archive_a: Archives 10 | archive_b: "Archives: %s" 11 | page: Page %d 12 | recent_posts: Recent Posts 13 | newer: Newer 14 | older: Older 15 | share: Share 16 | powered_by: Powered by 17 | rss_feed: RSS Feed 18 | category: Category 19 | tag: Tag -------------------------------------------------------------------------------- /themes/next/layout/_partials/pagination.swig: -------------------------------------------------------------------------------- 1 | {% if page.prev or page.next %} 2 | 11 | {% endif %} 12 | -------------------------------------------------------------------------------- /themes/next/source/css/_variables/Mist.styl: -------------------------------------------------------------------------------- 1 | // Variables of Mist scheme 2 | // ================================================= 3 | 4 | $font-size-headings-base = 26px 5 | 6 | $brand-color = $black-deep 7 | $brand-hover-color = $brand-color 8 | 9 | $site-meta-text-align = left 10 | $posts-collapse-left = 0 11 | 12 | $btn-default-color = $link-color 13 | $btn-default-bg = transparent 14 | -------------------------------------------------------------------------------- /themes/next/scripts/tags/mermaid.js: -------------------------------------------------------------------------------- 1 | /** 2 | * mermaid.js | https://theme-next.org/docs/tag-plugins/mermaid 3 | */ 4 | 5 | /* global hexo */ 6 | 7 | 'use strict'; 8 | 9 | function mermaid(args, content) { 10 | return `
11 |             ${args.join(' ')}
12 |             ${content}
13 |           
`; 14 | } 15 | 16 | hexo.extend.tag.register('mermaid', mermaid, {ends: true}); 17 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/analytics/baidu-analytics.swig: -------------------------------------------------------------------------------- 1 | {% if theme.baidu_analytics %} 2 | 11 | {% endif %} 12 | -------------------------------------------------------------------------------- /themes/landscape/layout/_partial/footer.ejs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/pages/breadcrumb.styl: -------------------------------------------------------------------------------- 1 | ul.breadcrumb { 2 | list-style: none; 3 | margin: 1em 0; 4 | padding: 0 2em; 5 | text-align: center; 6 | font-size: $font-size-small 7 | 8 | & li { 9 | display: inline; 10 | } 11 | 12 | & li+li:before { 13 | padding: 0.5em; 14 | font-weight: normal; 15 | content: "/\00a0"; 16 | } 17 | 18 | & li+li:last-child { 19 | font-weight: bold; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/tags/label.styl: -------------------------------------------------------------------------------- 1 | .post-body .label { 2 | display: inline; 3 | padding: 0 2px; 4 | 5 | &.default { background-color: $label-default; } 6 | &.primary { background-color: $label-primary; } 7 | &.info { background-color: $label-info; } 8 | &.success { background-color: $label-success; } 9 | &.warning { background-color: $label-warning; } 10 | &.danger { background-color: $label-danger; } 11 | } 12 | -------------------------------------------------------------------------------- /sitemap_template.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | {% for post in posts %} 4 | 5 | {{ post.permalink | uriencode }} 6 | {% if post.updated %} 7 | {{ post.updated.toISOString() }} 8 | {% elif post.date %} 9 | {{ post.date.toISOString() }} 10 | {% endif %} 11 | 12 | {% endfor %} 13 | 14 | -------------------------------------------------------------------------------- /themes/landscape/languages/ru.yml: -------------------------------------------------------------------------------- 1 | categories: Категории 2 | search: Поиск 3 | tags: Метки 4 | tagcloud: Облако меток 5 | tweets: Твиты 6 | prev: Назад 7 | next: Вперед 8 | comment: Комментарии 9 | archive_a: Архив 10 | archive_b: "Архив: %s" 11 | page: Страница %d 12 | recent_posts: Недавние записи 13 | newer: Следующий 14 | older: Предыдущий 15 | share: Поделиться 16 | powered_by: Создано с помощью 17 | rss_feed: RSS-каналы 18 | category: Категория 19 | tag: Метка -------------------------------------------------------------------------------- /themes/landscape/layout/_partial/post/gallery.ejs: -------------------------------------------------------------------------------- 1 | <% if (post.photos && post.photos.length){ %> 2 |
3 |
4 | <% post.photos.forEach(function(photo, i){ %> 5 | 6 | 7 | 8 | <% }) %> 9 |
10 |
11 | <% } %> -------------------------------------------------------------------------------- /themes/next/source/css/_mixins/Pisces.styl: -------------------------------------------------------------------------------- 1 | sidebar-inline-links-item() { 2 | margin: 5px 0 0; 3 | if !hexo-config('social_icons.icons_only') { width: 50%; } 4 | 5 | & a, span.exturl { 6 | max-width: 216px; 7 | box-sizing: border-box; 8 | display: inline-block; 9 | margin-right: 0; 10 | margin-bottom: 0; 11 | padding: 0 5px; 12 | overflow: hidden; 13 | white-space: nowrap; 14 | text-overflow: ellipsis; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /themes/landscape/languages/nl.yml: -------------------------------------------------------------------------------- 1 | 2 | categories: Categorieën 3 | search: Zoeken 4 | tags: Labels 5 | tagcloud: Tag Cloud 6 | tweets: Tweets 7 | prev: Vorige 8 | next: Volgende 9 | comment: Commentaren 10 | archive_a: Archieven 11 | archive_b: "Archieven: %s" 12 | page: Pagina %d 13 | recent_posts: Recente berichten 14 | newer: Nieuwer 15 | older: Ouder 16 | share: Delen 17 | powered_by: Powered by 18 | rss_feed: RSS Feed 19 | category: Categorie 20 | tag: Label 21 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/math/katex.swig: -------------------------------------------------------------------------------- 1 | 2 | {% if theme.math.katex.copy_tex.enable %} 3 | {% if theme.math.katex.copy_tex.copy_tex_js %} 4 | 5 | {% endif %} 6 | {% if theme.math.katex.copy_tex.copy_tex_css %} 7 | 8 | {% endif %} 9 | {% endif %} 10 | -------------------------------------------------------------------------------- /themes/landscape/languages/fr.yml: -------------------------------------------------------------------------------- 1 | categories: Catégories 2 | search: Rechercher 3 | tags: Mot-clés 4 | tagcloud: Nuage de mot-clés 5 | tweets: Tweets 6 | prev: Précédent 7 | next: Suivant 8 | comment: Commentaires 9 | archive_a: Archives 10 | archive_b: "Archives: %s" 11 | page: Page %d 12 | recent_posts: Articles récents 13 | newer: Récent 14 | older: Ancien 15 | share: Partager 16 | powered_by: Propulsé by 17 | rss_feed: Flux RSS 18 | category: Catégorie 19 | tag: Mot-clé 20 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/comments/livere.swig: -------------------------------------------------------------------------------- 1 | 14 | -------------------------------------------------------------------------------- /themes/next/test/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "curly": true, 3 | "eqnull": true, 4 | "eqeqeq": true, 5 | "undef": true, 6 | "newcap": true, 7 | "unused": true, 8 | "laxcomma": false, 9 | "asi": false, 10 | "expr": true, 11 | "loopfunc": false, 12 | "strict": false, 13 | 14 | "globals": { 15 | "define": true, 16 | "require": true, 17 | "it": true, 18 | "module": true, 19 | "describe": true, 20 | "window": true, 21 | "$": true 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /themes/next/source/css/_schemes/Muse/_logo.styl: -------------------------------------------------------------------------------- 1 | .custom-logo { 2 | .site-meta-headline { 3 | text-align: center; 4 | } 5 | 6 | .brand { 7 | background: none; 8 | } 9 | 10 | .site-title { 11 | margin: 10px auto 0; 12 | font-size: 24px; 13 | color: $black-deep; 14 | a { 15 | border: none; 16 | } 17 | } 18 | } 19 | 20 | .custom-logo-image { 21 | margin: 0 auto; 22 | padding: 5px; 23 | max-width: 150px; 24 | background: white; 25 | } 26 | -------------------------------------------------------------------------------- /themes/landscape/layout/_widget/recent_posts.ejs: -------------------------------------------------------------------------------- 1 | <% if (site.posts.length){ %> 2 |
3 |

<%= __('recent_posts') %>

4 |
5 | 12 |
13 |
14 | <% } %> -------------------------------------------------------------------------------- /themes/next/source/lib/font-awesome/.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | *.egg-info 3 | *.db 4 | *.db.old 5 | *.swp 6 | *.db-journal 7 | 8 | .coverage 9 | .DS_Store 10 | .installed.cfg 11 | _gh_pages/* 12 | 13 | .idea/* 14 | .svn/* 15 | src/website/static/* 16 | src/website/media/* 17 | 18 | bin 19 | cfcache 20 | develop-eggs 21 | dist 22 | downloads 23 | eggs 24 | parts 25 | tmp 26 | .sass-cache 27 | node_modules 28 | 29 | src/website/settingslocal.py 30 | stunnel.log 31 | 32 | .ruby-version 33 | .bundle 34 | -------------------------------------------------------------------------------- /themes/landscape/source/css/_partial/mobile.styl: -------------------------------------------------------------------------------- 1 | @media mq-mobile 2 | #mobile-nav 3 | position: absolute 4 | top: 0 5 | left: 0 6 | width: mobile-nav-width 7 | height: 100% 8 | background: color-mobile-nav-background 9 | border-right: 1px solid #fff 10 | 11 | @media mq-mobile 12 | .mobile-nav-link 13 | display: block 14 | color: color-grey 15 | text-decoration: none 16 | padding: 15px 20px 17 | font-weight: bold 18 | &:hover 19 | color: #fff 20 | -------------------------------------------------------------------------------- /source/_drafts/reentrancy-attack.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: reentrancy-attack 3 | tags: 4 | --- 5 | 6 | 7 | https://xzfile.aliyuncs.com/upload/zcon/2018/9_%E6%99%BA%E8%83%BD%E5%90%88%E7%BA%A6%E6%B6%88%E6%81%AF%E8%B0%83%E7%94%A8%E6%94%BB%E9%98%B2_%E9%9A%90%E5%BD%A2%E4%BA%BA%E5%BE%88%E5%BF%99.pdf 8 | 9 | 10 | https://medium.com/@gus_tavo_guim/reentrancy-attack-on-smart-contracts-how-to-identify-the-exploitable-and-an-example-of-an-attack-4470a2d8dfe4 11 | 12 | 13 | https://blog.csdn.net/u011721501/article/details/79450122 -------------------------------------------------------------------------------- /themes/next/layout/_partials/page/page-header.swig: -------------------------------------------------------------------------------- 1 |
2 | 3 | <{% if theme.seo %}h2{% else %}h1{% endif %} class="post-title" itemprop="name headline"> 4 | {{- page.title -}} 5 | {% include '../post-edit.swig' %} 6 | 7 | 8 |
9 | {% if page.description %} 10 |
{{ page.description }}
11 | {% endif %} 12 | {% include 'breadcrumb.swig' %} 13 |
14 | 15 |
16 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/analytics/tencent-mta.swig: -------------------------------------------------------------------------------- 1 | {% if theme.tencent_mta %} 2 | 13 | {% endif %} 14 | -------------------------------------------------------------------------------- /themes/next/scripts/tags/note.js: -------------------------------------------------------------------------------- 1 | /** 2 | * note.js | https://theme-next.org/docs/tag-plugins/note 3 | */ 4 | 5 | /* global hexo */ 6 | 7 | 'use strict'; 8 | 9 | function postNote(args, content) { 10 | return `
11 | ${hexo.render.renderSync({text: content, engine: 'markdown'}).split('\n').join('')} 12 |
`; 13 | } 14 | 15 | hexo.extend.tag.register('note', postNote, {ends: true}); 16 | hexo.extend.tag.register('subnote', postNote, {ends: true}); 17 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/baidu-push.swig: -------------------------------------------------------------------------------- 1 | {% if theme.baidu_push %} 2 | 11 | {% endif %} 12 | -------------------------------------------------------------------------------- /themes/next/scripts/tags/center-quote.js: -------------------------------------------------------------------------------- 1 | /** 2 | * center-quote.js | https://theme-next.org/docs/tag-plugins/ 3 | */ 4 | 5 | /* global hexo */ 6 | 7 | 'use strict'; 8 | 9 | function centerQuote(args, content) { 10 | return '
' 11 | + hexo.render.renderSync({text: content, engine: 'markdown'}) 12 | + '
'; 13 | } 14 | 15 | hexo.extend.tag.register('centerquote', centerQuote, {ends: true}); 16 | hexo.extend.tag.register('cq', centerQuote, {ends: true}); 17 | -------------------------------------------------------------------------------- /themes/next/.github/eslint-disable-bot.yml: -------------------------------------------------------------------------------- 1 | # Configuration for ESLint Disable Watcher - https://github.com/koddsson/eslint-disable-probot 2 | 3 | # Change this to set the number of comments the watcher should comment on a given PR. 4 | commentLimit: 10 5 | # The message the bot will post on any lines containing a eslint disable comment. 6 | commentMessage: Please don't disable eslint rules :pray: 7 | # A optional regular expression that will match against the branch name and not comment on it if it matches. 8 | skipBranchMatching: null 9 | -------------------------------------------------------------------------------- /source/_drafts/truffle.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: truffle使用 3 | date: 2017-11-23 19:41:53 4 | categories: BlockChain 5 | tags: 6 | - 环境 7 | author: Tiny熊 8 | --- 9 | 10 | 11 | ### ganache-cli 安装 12 | testrpc 并入Truffle框架后,更名为:ganache-cli 13 | [ganache-cli](https://github.com/trufflesuite/ganache-cli) 14 | ``` 15 | npm install -g ganache-cli 16 | ``` 17 | 运行 18 | ``` 19 | ganache-cli 20 | ``` 21 | 22 | 23 | 24 | ### truffle安装 25 | [官方安装指引](https://github.com/trufflesuite/truffle) 26 | 27 | ``` 28 | npm install -g truffle 29 | ``` 30 | -------------------------------------------------------------------------------- /themes/next/scripts/tags/label.js: -------------------------------------------------------------------------------- 1 | /** 2 | * label.js | https://theme-next.org/docs/tag-plugins/label 3 | */ 4 | 5 | /* global hexo */ 6 | 7 | 'use strict'; 8 | 9 | function postLabel(args) { 10 | args = args.join(' ').split('@'); 11 | var classes = args[0] || 'default'; 12 | var text = args[1] || ''; 13 | 14 | !text && hexo.log.warn('Label text must be defined!'); 15 | 16 | return `${text}`; 17 | } 18 | 19 | hexo.extend.tag.register('label', postLabel, {ends: false}); 20 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/analytics/growingio.swig: -------------------------------------------------------------------------------- 1 | {% if theme.growingio_analytics %} 2 | 7 | {% endif %} 8 | -------------------------------------------------------------------------------- /themes/next/source/lib/font-awesome/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "font-awesome", 3 | "description": "Font Awesome", 4 | "keywords": [], 5 | "homepage": "http://fontawesome.io", 6 | "dependencies": {}, 7 | "devDependencies": {}, 8 | "license": ["OFL-1.1", "MIT", "CC-BY-3.0"], 9 | "main": [ 10 | "less/font-awesome.less", 11 | "scss/font-awesome.scss" 12 | ], 13 | "ignore": [ 14 | "*/.*", 15 | "*.json", 16 | "src", 17 | "*.yml", 18 | "Gemfile", 19 | "Gemfile.lock", 20 | "*.md" 21 | ] 22 | } 23 | -------------------------------------------------------------------------------- /source/_posts/dev-meetup/dev_meeting_10.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 第10期 - 区块链安全的至暗时刻 3 | permalink: dev_meeting_10 4 | date: 2019-01-18 10:47:23 5 | categories: 技术工坊 6 | tags: 区块链安全 7 | hide_in_home: true 8 | un_subscription: true 9 | un_reward: true 10 | author: 晓娜 11 | --- 12 | 13 | #### 分享嘉宾:邓永凯 零时科技 CEO 14 | 15 | 话题简介:区块链安全的至暗时刻 16 | 17 | 活动大纲: 18 | 19 | 一、区块链安全现状 20 | 二、交易平台安全 21 | 三、智能合约安全 22 | 四、共识安全 23 | 五、区块链安全解决方案 24 | 25 | 26 | [点击下载PPT](https://img.learnblockchain.cn//pdf/10_blockchain_serurity.pdf) 27 | 因可能涉及的某些安全问题可能对一些项目产生影响,本期的视频暂不公开。 28 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/sidebar/sidebar-button.styl: -------------------------------------------------------------------------------- 1 | .feed-link, .chat { 2 | margin-top: 10px; 3 | 4 | a { 5 | display: inline-block; 6 | padding: 0 15px; 7 | color: rgb(252, 100, 35); 8 | border: 1px solid rgb(252, 100, 35) !important; 9 | border-radius: 4px; 10 | 11 | i { 12 | color: rgb(252, 100, 35); 13 | font-size: 14px; 14 | } 15 | 16 | &:hover { 17 | color: white; 18 | background: rgb(252, 100, 35); 19 | 20 | i { color: white; } 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/back-to-top-sidebar.styl: -------------------------------------------------------------------------------- 1 | .back-to-top { 2 | visibility: hidden; 3 | margin: (20px - $sidebar-offset) -10px -20px; 4 | background: $b2t-sidebar-bg-color; 5 | font-size: $b2t-font-size; 6 | opacity: $b2t-opacity; 7 | cursor: pointer; 8 | text-align: center; 9 | &:hover { opacity: $b2t-opacity-hover; } 10 | 11 | +tablet-mobile() { 12 | hide() if not hexo-config('sidebar.onmobile'); 13 | } 14 | 15 | &.back-to-top-on { 16 | visibility: visible; 17 | the-transition(); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /source/_posts/dev-meetup/dev_meeting_1.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 第一期 - 以太坊钱包开发 3 | permalink: dev_meeting_1 4 | date: 2018-12-13 11:25:59 5 | categories: 技术工坊 6 | hide_in_home: true 7 | un_subscription: true 8 | un_reward: true 9 | author: 晓娜 10 | --- 11 | 12 | #### 讲师:登链学院 熊丽兵 13 | 14 | 分享大纲: 15 | 1. 私钥 地址 及账号 16 | 2. 什么是HD钱包(分层确定性钱包) 17 | 3. 助记词及私钥保存 18 | 4. 如何测量gasLimit及设定gasPrice 19 | 5. 如何发送签名交易及转移Token 20 | 21 | [点击下载PPT](https://img.learnblockchain.cn/pdf/eth_wallet.pdf)及[完整课程视频](https://m.qlchat.com/wechat/page/channel-intro?channelId=2000002356009198) 22 | -------------------------------------------------------------------------------- /themes/landscape/layout/_partial/post/title.ejs: -------------------------------------------------------------------------------- 1 | <% if (post.link){ %> 2 |

3 | 4 |

5 | <% } else if (post.title){ %> 6 | <% if (index){ %> 7 |

8 | <%= post.title %> 9 |

10 | <% } else { %> 11 |

12 | <%= post.title %> 13 |

14 | <% } %> 15 | <% } %> -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/components.styl: -------------------------------------------------------------------------------- 1 | @import "highlight"; 2 | @import "tags"; 3 | 4 | @import "buttons"; 5 | @import "pagination"; 6 | @import "comments"; 7 | @import (hexo-config('back2top.sidebar') ? "back-to-top-sidebar" : "back-to-top") if (hexo-config('back2top.enable')); 8 | 9 | @import "header"; 10 | @import "post"; 11 | @import "sidebar"; 12 | @import "footer"; 13 | @import "third-party"; 14 | 15 | @import "pages"; 16 | 17 | @import "rainbow" if hexo-config('safari_rainbow'); 18 | @import "scrollbar" if hexo-config('custom_scrollbar'); 19 | -------------------------------------------------------------------------------- /themes/next/source/js/schemes/muse.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function() { 2 | function updateFooterPosition() { 3 | var containerHeight = $('#footer').attr('position') ? $('.container').height() + $('#footer').outerHeight(true) : $('.container').height(); 4 | if (containerHeight < window.innerHeight) $('#footer').css({ 'position': 'fixed', 'bottom': 0, 'left': 0, 'right': 0 }).attr('position', 'fixed'); 5 | else $('#footer').removeAttr('style position'); 6 | } 7 | updateFooterPosition(); 8 | $(window).on('resize scroll', updateFooterPosition); 9 | }); 10 | -------------------------------------------------------------------------------- /source/_posts/dev-meetup/dev_meeting_6.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 第六期 - DAG技术中的比特币XDAG 3 | permalink: dev_meeting_6 4 | date: 2018-12-21 11:41:23 5 | categories: 技术工坊 6 | tags: 7 | - DAG 8 | - XDAG 9 | hide_in_home: true 10 | un_subscription: true 11 | un_reward: true 12 | author: 晓娜 13 | --- 14 | 15 | #### 讲师:以太零 苏显华 16 | 17 | 分享大纲: 18 | 1. 区块链技术现状 19 | 2. DAG公链的发展现状 20 | 3. DAG技术的比特币XDAG 21 | 4. XDAG的技术实践 22 | 5. 未来的挑战 23 | 24 | [点击下载PPT](https://img.learnblockchain.cn/pdf/meetup_6.pdf) 及 [现场视频](https://m.qlchat.com/live/channel/channelPage/2000003040784741.htm) 25 | -------------------------------------------------------------------------------- /source/_posts/dev-meetup/dev_meeting_4.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 第四期 - 以太坊零手续费及其安全防御的实现 3 | permalink: dev_meeting_4 4 | date: 2018-12-13 11:41:23 5 | categories: 技术工坊 6 | tags: 安全 7 | hide_in_home: true 8 | un_subscription: true 9 | un_reward: true 10 | author: 晓娜 11 | --- 12 | 13 | #### 讲师:以太零CTO 钟瑞仙 14 | 15 | 主要内容: 16 | 1. 以太坊⼿手续费简介 17 | 2. 零⼿手续费的必要性 18 | 3. 零⼿手续费的实现 19 | 4. 零⼿手续费带来的安全问题及其解决⽅方案 20 | 5. 零⼿手续费的副作⽤ 21 | 22 | [点击下载PPT](https://img.learnblockchain.cn/pdf/meetup_4.pdf)及[完整课程视频](https://m.qlchat.com/wechat/page/channel-intro?channelId=2000002858537956) 23 | -------------------------------------------------------------------------------- /source/_posts/dev-meetup/dev_meeting_5.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 第五期 - 搞明白以太坊DAPP开发 3 | permalink: dev_meeting_5 4 | date: 2018-12-14 11:41:23 5 | categories: 技术工坊 6 | tags: DApp 7 | hide_in_home: true 8 | un_subscription: true 9 | un_reward: true 10 | author: 晓娜 11 | --- 12 | 13 | #### 讲师:登链学院 Tiny熊 14 | 15 | 分享大纲: 16 | 1. DAPP与APP 的区别 17 | 2. 智能合约开发简介 18 | 3. web3.js 与 合约交互 19 | 4. MetaMask, Remix , Truffle,Ganache 使用 20 | 21 | [点击下载PPT](https://img.learnblockchain.cn/pdf/meetup_5.pdf) 及 [现场视频](https://m.qlchat.com/wechat/page/channel-intro?channelId=2000002953398745) 22 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/bookmark.swig: -------------------------------------------------------------------------------- 1 | {% if theme.bookmark and theme.bookmark.enable %} 2 | {% set bookmark_uri = url_for(theme.vendors._internal + '/bookmark/bookmark.min.js?v=1.0') %} 3 | {% if theme.vendors.bookmark %} 4 | {% set bookmark_uri = theme.vendors.bookmark %} 5 | {% endif %} 6 | 7 | 14 | {% endif %} 15 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/post/post-gallery.styl: -------------------------------------------------------------------------------- 1 | .post-gallery { 2 | display: table; 3 | table-layout: fixed; 4 | width: 100%; 5 | border-collapse: separate; 6 | } 7 | 8 | .post-gallery-row { 9 | display: table-row; 10 | } 11 | 12 | .post-gallery .post-gallery-img { 13 | display: table-cell; 14 | text-align: center; 15 | vertical-align: middle; 16 | border: none; 17 | 18 | img { 19 | max-width: 100%; 20 | max-height: 100%; 21 | border: none; 22 | } 23 | } 24 | 25 | .fancybox-close, .fancybox-close:hover { 26 | border: none; 27 | } 28 | -------------------------------------------------------------------------------- /source/_posts/dev-meetup/dev_meeting_2.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 第二期 - 深度探索以太坊智能合约 3 | permalink: dev_meeting_2 4 | date: 2018-12-13 11:26:23 5 | categories: 技术工坊 6 | tags: 7 | - EVM 8 | hide_in_home: true 9 | un_subscription: true 10 | un_reward: true 11 | author: 晓娜 12 | --- 13 | 14 | 15 | #### 讲师:以太零CTO 钟瑞仙 16 | 17 | 主要内容包含: 18 | 1. 以太坊账户介绍 19 | 2. 交易数据⾥里data字段的编码规则 20 | 3. 智能合约属性的索引和存储 21 | 4. 预编译合约介绍及汇编调⽤ 22 | 23 | [点击下载PPT](https://img.learnblockchain.cn/pdf/deep_smartcontract.pdf)及[完整课程视频](https://m.qlchat.com/wechat/page/channel-intro?channelId=2000002631831830&sourceNo=link) 24 | -------------------------------------------------------------------------------- /themes/next/layout/_partials/search/swiftype.swig: -------------------------------------------------------------------------------- 1 |
2 | 3 |
4 | 5 | 13 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/mermaid.swig: -------------------------------------------------------------------------------- 1 | {% if theme.mermaid.enable %} 2 | 21 | {% endif %} 22 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/third-party/gitment.styl: -------------------------------------------------------------------------------- 1 | #gitment-display-button { 2 | display: inline-block; 3 | padding: 0 15px; 4 | color: #0a9caf; 5 | cursor: pointer; 6 | font-size: 14px; 7 | border: 1px solid #0a9caf; 8 | border-radius: 4px; 9 | } 10 | 11 | #gitment-display-button:hover { 12 | color: #fff; 13 | background: #0a9caf; 14 | } 15 | 16 | #gitment-container a { 17 | border-bottom: none; 18 | } 19 | 20 | if hexo-config('gitment.cleanly') { 21 | a.gitment-editor-footer-tip, .gitment-container.gitment-footer-container { 22 | hide(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/third-party/related-posts.styl: -------------------------------------------------------------------------------- 1 | .popular-posts-header { 2 | margin-top: $post-eof-margin-bottom; 3 | margin-bottom: 10px; 4 | font-size: $font-size-headings-base; 5 | border-bottom: 1px solid $gainsboro; 6 | show(); 7 | } 8 | 9 | ul.popular-posts { 10 | padding: 0; 11 | 12 | .popular-posts-item { 13 | // list-style: none; 14 | margin-left: 2em; 15 | .popular-posts-title { 16 | font-weight: normal; 17 | font-size: $font-size-base; 18 | margin: 0; 19 | line-height: $line-height-base * 1.2; 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/third-party/third-party.styl: -------------------------------------------------------------------------------- 1 | @import "gitment" if hexo-config('gitment.enable'); 2 | @import "gitalk" if hexo-config('gitalk.enable'); 3 | @import "han" if hexo-config('han'); 4 | @import "localsearch"; 5 | @import "algolia-search" if hexo-config('algolia_search.enable'); 6 | @import "needsharebutton" if hexo-config('needmoreshare2.enable'); 7 | @import "related-posts" if hexo-config('related_posts.enable'); 8 | @import "copy-code" if hexo-config('codeblock.copy_button.enable'); 9 | @import "math" if hexo-config('math.enable') and hexo-config('math.engine') == 'mathjax'; 10 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/analytics/google-analytics.swig: -------------------------------------------------------------------------------- 1 | {% if theme.google_analytics.tracking_id %} 2 | 3 | 12 | {% endif %} 13 | -------------------------------------------------------------------------------- /source/_posts/dev-meetup/dev_meeting_8.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 第8期 - 大白话区块链共识机制算法 3 | permalink: dev_meeting_8 4 | date: 2019-01-04 10:47:23 5 | categories: 技术工坊 6 | tags: 共识 7 | hide_in_home: true 8 | un_subscription: true 9 | un_reward: true 10 | author: 晓娜 11 | --- 12 | 13 | #### 分享嘉宾:Nerthus CTO 虞双齐 14 | 15 | 16 | 17 | 力求用最普通的话语讲解区块链共识机制。 18 | 19 | 话题大纲: 20 | 21 | 1. 区块链史前文明 22 | 23 | 2. 工作量证明(PoW)共识机制算法与分析、以及算力和区块难度等区块链概念。 24 | 25 | 3. 权益证明(PoS)共识机制、各种优化版的Pos介绍与分析。 26 | 27 | 28 | [点击下载PPT](https://img.learnblockchain.cn/pdf/meetup_8.pdf) 及 [现场视频](https://m.qlchat.com/wechat/page/channel-intro?channelId=2000003201470300) 29 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/header/site-nav.styl: -------------------------------------------------------------------------------- 1 | .site-nav-toggle { 2 | hide(); 3 | position: absolute; 4 | top: 10px; 5 | left: 10px; 6 | +mobile() { 7 | show(); 8 | } 9 | 10 | button { 11 | margin-top: 2px; 12 | padding: 9px 10px; 13 | background: transparent; 14 | border: none; 15 | } 16 | } 17 | 18 | .site-nav { 19 | +mobile() { 20 | hide(); 21 | margin: 0 -10px; 22 | padding: 0 10px; 23 | clear: both; 24 | border-top: 1px solid $gray-lighter; 25 | } 26 | +tablet() { display: block !important; } 27 | +desktop() { display: block !important; } 28 | } 29 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/pages/categories.styl: -------------------------------------------------------------------------------- 1 | .category-all-page { 2 | .category-all-title { text-align: center; } 3 | 4 | .category-all { margin-top: 20px; } 5 | 6 | .category-list { 7 | margin: 0; 8 | padding: 0; 9 | list-style: none; 10 | } 11 | 12 | .category-list-item { margin: 5px 10px; } 13 | 14 | .category-list-count { 15 | color: $grey; 16 | &:before { 17 | display: inline; 18 | content: " (" 19 | } 20 | &:after { 21 | display: inline; 22 | content: ") " 23 | } 24 | } 25 | 26 | .category-list-child { padding-left: 10px; } 27 | } 28 | -------------------------------------------------------------------------------- /source/_posts/Q&A/bytes-to-addr.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Solidity 中 bytes类型如何转换为地址address类型 3 | permalink: bytes-to-address 4 | date: 2019-10-10 11:25:59 5 | categories: 问与答 6 | tags: 7 | - bytes 8 | - Solidity 9 | author: Tiny熊 10 | --- 11 | 12 | Solidity 中 bytes类型如何转换为地址address类型 13 | 14 | 15 | 16 | ## bytes 类型如何转换为address 17 | 18 | 转换方法如下: 19 | 20 | ```js 21 | 22 | function bytesToAddress(bytes memory bys) external pure returns (address addr) { 23 | assembly { 24 | addr := mload(add(bys,20)) 25 | } 26 | ``` 27 | 28 | 29 | 30 | [深入浅出区块链](https://learnblockchain.cn/) - 打造高质量区块链技术博客,学区块链都来这里 -------------------------------------------------------------------------------- /themes/landscape/layout/_partial/google-analytics.ejs: -------------------------------------------------------------------------------- 1 | <% if (theme.google_analytics){ %> 2 | 3 | 13 | 14 | <% } %> 15 | -------------------------------------------------------------------------------- /themes/next/source/css/_custom/custom.styl: -------------------------------------------------------------------------------- 1 | // Custom styles. 2 | 3 | .site-author-image { 4 | width: 130px; 5 | } 6 | 7 | .site-description { 8 | margin-top: 4px; 9 | text-align: center; 10 | font-size: 13px; 11 | color: #999; 12 | } 13 | 14 | .links-of-author { 15 | margin-top: 2px; 16 | } 17 | 18 | .links-of-author-item { 19 | margin: 1px 0 0; 20 | width: 33%; 21 | } 22 | 23 | .content-wrap { 24 | padding: 6px 40px; 25 | } 26 | 27 | .posts-expand { 28 | .post-eof { 29 | margin: 70px auto 50px; 30 | 31 | +mobile(){ 32 | margin: 40px auto 30px; 33 | } 34 | 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /source/_posts/dev-meetup/dev_meeting_3.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 第三期 - 高TPS与去中心化存储带来的机遇 3 | permalink: dev_meeting_3 4 | date: 2018-12-13 11:27:23 5 | categories: 技术工坊 6 | tags: 7 | - EOS 8 | - IPFS 9 | - FIBOS 10 | hide_in_home: true 11 | un_subscription: true 12 | un_reward: true 13 | author: 晓娜 14 | --- 15 | 16 | 17 | #### 讲师:星际区块(深圳)CEO 谢建怀 18 | 19 | 主要内容: 20 | 1. 高TPS能让我们做更多有意思的东西 21 | 2. 第三代区块链技术能落地的思考 22 | 3. 去中心化存储能在工程上带来哪些应用 23 | 4. 区块链应用的项目探索(基于EOS、FIBOS和IPFS 应用) 24 | 25 | [点击下载PPT](https://img.learnblockchain.cn/pdf/meeting_3.pdf)及[完整课程视频](https://m.qlchat.com/live/channel/channelPage/2000002746846802.htm) 26 | 27 | 28 | -------------------------------------------------------------------------------- /themes/next/layout/_partials/search/localsearch.swig: -------------------------------------------------------------------------------- 1 | 17 | -------------------------------------------------------------------------------- /themes/next/layout/category-post.swig: -------------------------------------------------------------------------------- 1 | {% extends '_layout.swig' %} 2 | {% import '_macro/post.swig' as post_template %} 3 | {% import '_macro/sidebar.swig' as sidebar_template %} 4 | 5 | {% block title %}{{ __('title.category') }}: {{ page.category }} | {{ config.title }}{% endblock %} 6 | 7 | {% block content %} 8 |
9 | {% for post in page.posts %} 10 | {{ post_template.render(post, true) }} 11 | {% endfor %} 12 |
13 | 14 | {% include '_partials/pagination.swig' %} 15 | {% endblock %} 16 | 17 | {% block sidebar %} 18 | {{ sidebar_template.render(false) }} 19 | {% endblock %} -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/sidebar/sidebar-blogroll.styl: -------------------------------------------------------------------------------- 1 | .links-of-blogroll { 2 | margin-top: 10px; 3 | font-size: 13px; 4 | } 5 | 6 | .links-of-blogroll-title { 7 | margin-top: 0; 8 | font-size: 14px; 9 | font-weight: $font-weight-bold; 10 | } 11 | .links-of-blogroll-list { 12 | margin: 0; 13 | padding: 0; 14 | list-style: none; 15 | } 16 | 17 | .links-of-blogroll-item { 18 | padding: 2px 10px; 19 | 20 | a, span.exturl { 21 | max-width: 280px; 22 | box-sizing: border-box; 23 | display: inline-block; 24 | overflow: hidden; 25 | white-space: nowrap; 26 | text-overflow: ellipsis; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /source/_posts/dev-meetup/dev_meeting_9.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 第9期 - 漫谈区块图技术之XDAG和Conflux 3 | permalink: dev_meeting_9 4 | date: 2019-01-11 10:47:23 5 | categories: 技术工坊 6 | tags: 7 | - DAG 8 | - Conflux 9 | - 树图 10 | hide_in_home: true 11 | un_subscription: true 12 | un_reward: true 13 | author: 晓娜 14 | --- 15 | 16 | #### 分享嘉宾:以太零 高级工程师 苏显华 17 | 18 | 话题:漫谈区块图技术之XDAG和Conflux 19 | 20 | 1、区块图技术重量级区块链项目-conflux 21 | 2、图灵奖姚教授发明的Conflux是什么? 22 | 3、XDAG的工作量证明和区块图算法 23 | 4、XDAG现存问题和未来改进 24 | 5、Conflux特性和发布时间 25 | 26 | 27 | [点击下载PPT](https://img.learnblockchain.cn/pdf/xdag_conflux.pdf) 及 [现场视频](https://m.qlchat.com/live/channel/channelPage/2000003282116880.htm) 28 | -------------------------------------------------------------------------------- /source/_posts/dev-meetup/dev_meeting.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 区块链技术工坊 3 | permalink: dev_meeting 4 | date: 2018-12-12 11:25:59 5 | categories: 技术工坊 6 | hide_in_home: true 7 | un_subscription: true 8 | un_reward: true 9 | author: 晓娜 10 | --- 11 | 12 | **我们是谁、我们的目标** 13 | 区块链技术工坊主要由HiBlock社区发起,在全国各主要城市由一群热爱区块链技术开发者组织的技术分享活动。 14 | 深圳地区由[登链](https://upchain.ke.qq.com/?tuin=bd898bbf)Tiny熊组织,我们每月邀请2到3位技术大咖进行分享。 15 | 16 | 由于区块链技术涉及面广、发展快速,我们希望通过这个分享大家能够一起学习交流、共同成长。 17 | 18 | **如何加入** 19 | 很简单,在活动行报名即可,[活动行地址](http://hiblock.huodongxing.com/)。 20 | 如果你也有意参与分享,欢迎联系Tiny熊,微信:xlbxiong 21 | 22 | **致谢** 23 | 一个活动,单靠几个爱好的的兴趣是不够的,因此要感谢中琛源提供场地支持,ATM社区、零时科技对活动的大力赞助。如果你有兴趣赞助,请联系Tiny熊了解权益和义务。 24 | -------------------------------------------------------------------------------- /themes/landscape/_config.yml: -------------------------------------------------------------------------------- 1 | # Header 2 | menu: 3 | Home: / 4 | Archives: /archives 5 | rss: /atom.xml 6 | 7 | # Content 8 | excerpt_link: Read More 9 | fancybox: true 10 | 11 | # Sidebar 12 | sidebar: right 13 | widgets: 14 | - category 15 | - tag 16 | - tagcloud 17 | - archive 18 | - recent_posts 19 | 20 | # display widgets at the bottom of index pages (pagination == 2) 21 | index_widgets: 22 | # - category 23 | # - tagcloud 24 | # - archive 25 | 26 | # widget behavior 27 | archive_type: 'monthly' 28 | show_count: false 29 | 30 | # Miscellaneous 31 | google_analytics: 32 | favicon: /favicon.png 33 | twitter: 34 | google_plus: 35 | fb_admins: 36 | fb_app_id: 37 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/third-party/needsharebutton.styl: -------------------------------------------------------------------------------- 1 | #needsharebutton-postbottom { 2 | position: relative; 3 | cursor: pointer; 4 | height: 26px; 5 | 6 | .btn { 7 | display: initial; 8 | padding: 1px 4px; 9 | border: 1px solid $btn-default-border-color; 10 | border-radius: 3px; 11 | } 12 | } 13 | 14 | #needsharebutton-float { 15 | position: fixed; 16 | bottom: 38px; 17 | left: -8px; 18 | z-index: 9999; 19 | cursor: pointer; 20 | 21 | .btn { 22 | //display: initial; 23 | padding: 0 10px 0 14px; 24 | border: 1px solid $btn-default-border-color; 25 | border-radius: 4px; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /themes/next/source/css/_schemes/Pisces/_brand.styl: -------------------------------------------------------------------------------- 1 | .site-brand-wrapper { 2 | position: relative; 3 | } 4 | 5 | .site-meta { 6 | padding: 20px 0; 7 | color: white; 8 | background: $black-deep; 9 | 10 | +tablet-mobile() { 11 | box-shadow: 0 0 16px rgba(0, 0, 0, 0.5); 12 | } 13 | } 14 | 15 | .brand { 16 | padding: 0; 17 | background: none; 18 | 19 | &:hover { 20 | color: white; 21 | } 22 | } 23 | 24 | .site-subtitle { 25 | margin: 10px 10px 0; 26 | font-weight: initial; 27 | } 28 | 29 | .custom-logo-image { 30 | margin-top: 20px; 31 | +tablet-mobile() { 32 | hide(); 33 | } 34 | } 35 | 36 | .site-search form { 37 | hide(); 38 | } 39 | -------------------------------------------------------------------------------- /source/_data/languages.yml: -------------------------------------------------------------------------------- 1 | en: 2 | name: English 3 | disqus: en 4 | subtitle: Theme for Hexo 5 | author: Theme NexT 6 | description: Stay Simple. Stay NexT. 7 | ru: 8 | name: Русский 9 | disqus: ru 10 | subtitle: Тема для Hexo 11 | author: Тема NexT 12 | description: Ставь просто. Ставь NexT. 13 | menu: 14 | News: Новости 15 | Docs: Документация 16 | Getting Started: Начало работы 17 | Theme Settings: Настройки темы 18 | Third Party Services: Сторонние приложения 19 | Algolia Search: Поиск Algolia 20 | Tag Plugins: Плагины тэгов 21 | Advanced Settings: Расширенные настройки 22 | FAQ's: ЧаВо 23 | zh-TW: 24 | name: Chinese 25 | -------------------------------------------------------------------------------- /themes/landscape/source/css/_partial/sidebar-bottom.styl: -------------------------------------------------------------------------------- 1 | .widget-wrap 2 | margin-bottom: block-margin !important 3 | @media mq-normal 4 | column(main-column) 5 | 6 | .widget-title 7 | color: #ccc 8 | text-transform: uppercase 9 | letter-spacing: 2px 10 | margin-bottom: .5em 11 | line-height: 1em 12 | font-weight: bold 13 | 14 | .widget 15 | color: color-grey 16 | ul, ol 17 | li 18 | display: inline-block 19 | zoom:1 20 | *display:inline 21 | padding-right: .75em 22 | /* Having problems getting balanced white space between items 23 | li:before 24 | content: " | " 25 | li:first-child:before 26 | content: none 27 | */ 28 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/chatra.swig: -------------------------------------------------------------------------------- 1 | {% if theme.chatra.enable %} 2 | {% if theme.chatra.embed %} 3 | 9 | {% endif %} 10 | 22 | {% endif %} 23 | -------------------------------------------------------------------------------- /themes/next/layout/post.swig: -------------------------------------------------------------------------------- 1 | {% extends '_layout.swig' %} 2 | {% import '_macro/post.swig' as post_template %} 3 | {% import '_macro/sidebar.swig' as sidebar_template %} 4 | 5 | {% block title %}{{ page.title }} | {{ title }} | {{ config.ext_title }}{% endblock %} 6 | 7 | {% block page_class %}page-post-detail{% endblock %} 8 | 9 | {% block content %} 10 | 11 |
12 | {{ post_template.render(page) }} 13 |
14 | 15 | {% endblock %} 16 | 17 | {% block sidebar %} 18 | {{ sidebar_template.render(true) }} 19 | {% endblock %} 20 | 21 | {% block script_extra %} 22 | {% include '_scripts/pages/post-details.swig' %} 23 | {% endblock %} 24 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/scrollbar.styl: -------------------------------------------------------------------------------- 1 | // scrollbar 2 | ::-webkit-scrollbar { 3 | width: 8px; 4 | height: 8px; 5 | } 6 | 7 | // track 8 | ::-webkit-scrollbar-track { 9 | 10 | } 11 | 12 | // Handle style 13 | ::-webkit-scrollbar-thumb { 14 | border-radius: 10px; 15 | background: rgba(0, 0, 0, 0.2); 16 | } 17 | 18 | // inactive style 19 | ::-webkit-scrollbar-thumb:window-inactive { 20 | background: rgba(0, 0, 0, 0.1); 21 | } 22 | 23 | // hover style 24 | ::-webkit-scrollbar-thumb:hover{ 25 | background-color: rgba(0, 0, 0, 0.3); 26 | } 27 | 28 | // active style 29 | ::-webkit-scrollbar-thumb:active{ 30 | background-color: rgba(0, 0, 0, 0.4); 31 | } 32 | -------------------------------------------------------------------------------- /themes/landscape/source/css/_partial/sidebar-aside.styl: -------------------------------------------------------------------------------- 1 | #sidebar 2 | @media mq-normal 3 | column(sidebar-column) 4 | 5 | .widget-wrap 6 | margin: block-margin 0 7 | 8 | .widget-title 9 | @extend $block-caption 10 | 11 | .widget 12 | color: color-sidebar-text 13 | text-shadow: 0 1px #fff 14 | background: color-widget-background 15 | box-shadow: 0 -1px 4px color-widget-border inset 16 | border: 1px solid color-widget-border 17 | padding: 15px 18 | border-radius: 3px 19 | a 20 | color: color-link 21 | text-decoration: none 22 | &:hover 23 | text-decoration: underline 24 | ul, ol, dl 25 | ul, ol, dl 26 | margin-left: 15px 27 | list-style: disc -------------------------------------------------------------------------------- /themes/next/layout/_scripts/noscript.swig: -------------------------------------------------------------------------------- 1 | 25 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/pages/archive.styl: -------------------------------------------------------------------------------- 1 | .page-archive { 2 | 3 | .archive-page-counter { 4 | position: relative; 5 | top: 3px; 6 | left: 20px; 7 | 8 | +mobile() { 9 | top: 5px; 10 | } 11 | } 12 | 13 | .posts-collapse { 14 | 15 | .archive-move-on { 16 | position: absolute; 17 | top: 11px; 18 | left: 0; 19 | margin-left: -6px; 20 | width: 10px; 21 | height: 10px; 22 | opacity: 0.5; 23 | background: $black-light; 24 | border: 1px solid white; 25 | 26 | circle(); 27 | } 28 | } 29 | 30 | .fa-external-link { 31 | font-size: 15px; 32 | margin-left: 5px; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/analytics/facebook-sdk.swig: -------------------------------------------------------------------------------- 1 | {% if theme.facebook_sdk.enable %} 2 | 18 | {% endif %} 19 | -------------------------------------------------------------------------------- /themes/next/.github/auto_assign.yml: -------------------------------------------------------------------------------- 1 | # Configuration for Auto Assign - https://github.com/kentaro-m/auto-assign 2 | 3 | # Set to true to add reviewers to pull requests 4 | addReviewers: true 5 | 6 | # Set to true to add assignees to pull requests 7 | addAssignees: false 8 | 9 | # A list of reviewers to be added to pull requests (GitHub user name) 10 | reviewers: 11 | - ivan-nginx 12 | - maple3142 13 | - sli1989 14 | - stevenjoezhang 15 | 16 | # A number of reviewers added to the pull request 17 | # Set 0 to add all the reviewers (default: 0) 18 | numberOfReviewers: 0 19 | 20 | # A list of keywords to be skipped the process that add reviewers if pull requests include it 21 | skipKeywords: 22 | - wip 23 | -------------------------------------------------------------------------------- /themes/next/source/lib/jquery_lazyload/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery_lazyload", 3 | "version": "1.9.4", 4 | "homepage": "http://www.appelsiini.net/projects/lazyload", 5 | "authors": [ 6 | "Mika Tuupola " 7 | ], 8 | "description": "jQuery plugin for lazy loading images", 9 | "main": [ 10 | "jquery.lazyload.js", 11 | "jquery.scrollstop.js" 12 | ], 13 | "license": "MIT", 14 | "ignore": [ 15 | "**/.*", 16 | "**/*.min.js", 17 | "**/*.html", 18 | "**/*.textile", 19 | "Gruntfile.js", 20 | "lazyload.jquery.json", 21 | "package.json", 22 | "node_modules", 23 | "bower_components", 24 | "test", 25 | "img" 26 | ] 27 | } 28 | -------------------------------------------------------------------------------- /source/_posts/Q&A/bytes-to-uint.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Solidity 中 bytes类型如何转换为整型 uint 3 | permalink: bytes-to-uint 4 | date: 2019-10-16 11:25:59 5 | categories: 问与答 6 | tags: 7 | - bytes 8 | - Solidity 9 | author: Tiny熊 10 | --- 11 | 12 | Solidity 中 bytes类型如何转换为整型 uint 13 | 14 | 15 | 16 | ## bytes类型如何转换为整型 uint 17 | 18 | ```js 19 | function bytesToUint(bytes memory b) public view returns (uint256){ 20 | 21 | uint256 number; 22 | for(uint i= 0; i 3 | 9 | 10 |
11 |
12 |
13 |
14 |
15 | 16 | 17 | 18 | 19 | 20 | {% endif %} 21 | -------------------------------------------------------------------------------- /themes/landscape/layout/layout.ejs: -------------------------------------------------------------------------------- 1 | <%- partial('_partial/head') %> 2 | 3 |
4 |
5 | <%- partial('_partial/header', null, {cache: !config.relative_link}) %> 6 |
7 |
<%- body %>
8 | <% if (theme.sidebar && theme.sidebar !== 'bottom'){ %> 9 | <%- partial('_partial/sidebar', null, {cache: !config.relative_link}) %> 10 | <% } %> 11 |
12 | <%- partial('_partial/footer', null, {cache: !config.relative_link}) %> 13 |
14 | <%- partial('_partial/mobile-nav', null, {cache: !config.relative_link}) %> 15 | <%- partial('_partial/after-footer') %> 16 |
17 | 18 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/back-to-top.styl: -------------------------------------------------------------------------------- 1 | .back-to-top { 2 | box-sizing: border-box; 3 | position: fixed; 4 | bottom: $b2t-position-bottom; 5 | right: $b2t-position-right; 6 | z-index: $zindex-5; 7 | padding: 0 6px; 8 | width: hexo-config('back2top.scrollpercent') ? initial : 24px; 9 | background: $b2t-bg-color; 10 | font-size: $b2t-font-size; 11 | opacity: $b2t-opacity; 12 | color: $b2t-color; 13 | cursor: pointer; 14 | text-align: center; 15 | transition-property: bottom; 16 | the-transition(); 17 | 18 | &.back-to-top-on { 19 | bottom: $b2t-position-bottom-on; 20 | } 21 | +tablet-mobile() { 22 | opacity: $b2t-opacity-hover; 23 | right: $b2t-position-right-mobile; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /themes/landscape/source/css/_partial/sidebar.styl: -------------------------------------------------------------------------------- 1 | if sidebar is bottom 2 | @import "sidebar-bottom" 3 | else 4 | @import "sidebar-aside" 5 | 6 | .widget 7 | @extend $base-style 8 | line-height: line-height 9 | word-wrap: break-word 10 | font-size: 0.9em 11 | ul, ol 12 | list-style: none 13 | margin: 0 14 | ul, ol 15 | margin: 0 20px 16 | ul 17 | list-style: disc 18 | ol 19 | list-style: decimal 20 | 21 | .category-list-count 22 | .tag-list-count 23 | .archive-list-count 24 | padding-left: 5px 25 | color: color-grey 26 | font-size: 0.85em 27 | &:before 28 | content: "(" 29 | &:after 30 | content: ")" 31 | 32 | .tagcloud 33 | a 34 | margin-right: 5px 35 | display: inline-block 36 | -------------------------------------------------------------------------------- /themes/next/.github/mergeable.yml: -------------------------------------------------------------------------------- 1 | # Configuration for Mergeable - https://github.com/jusx/mergeable 2 | 3 | version: 2 4 | mergeable: 5 | - when: pull_request.* 6 | validate: 7 | - do: description 8 | no_empty: 9 | enabled: false 10 | 11 | - do: title 12 | must_exclude: 13 | regex: ^\[WIP\] 14 | 15 | - do: label 16 | must_include: 17 | regex: 'feat|imp|fix|doc|i18n' 18 | must_exclude: 19 | regex: 'wip|work in progress' 20 | 21 | #- do: project 22 | # no_empty: 23 | # enabled: true 24 | # must_include: 25 | # regex: 'feat|imp|fix|doc|loc' 26 | 27 | - do: milestone 28 | no_empty: 29 | enabled: true 30 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/sidebar/sidebar-author-links.styl: -------------------------------------------------------------------------------- 1 | .links-of-author { 2 | margin-top: 20px; 3 | 4 | a, span.exturl { 5 | display: inline-block; 6 | vertical-align: middle; 7 | margin-right: 10px; 8 | margin-bottom: 10px; 9 | border-bottom-color: $black-light; 10 | font-size: 13px; 11 | if hexo-config('social_icons.transition') { the-transition(); } 12 | 13 | &:before { 14 | display: inline-block; 15 | vertical-align: middle; 16 | margin-right: 3px; 17 | content: " "; 18 | width: 4px; 19 | height: 4px; 20 | circle(); 21 | background: rgb(random-color(0, 255) - 50%, random-color(0, 255) - 50%, random-color(0, 255) - 50%); 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/sidebar/sidebar-toggle.styl: -------------------------------------------------------------------------------- 1 | .sidebar-toggle { 2 | position: fixed; 3 | right: $b2t-position-right; 4 | bottom: 45px; 5 | width: 14px; 6 | height: 14px; 7 | padding: 5px; 8 | background: $black-deep; 9 | line-height: 0; 10 | z-index: $zindex-5; 11 | cursor: pointer; 12 | 13 | +tablet-mobile() { 14 | opacity: $b2t-opacity-hover; 15 | right: $b2t-position-right-mobile; 16 | hide() if not hexo-config('sidebar.onmobile'); 17 | } 18 | } 19 | 20 | .sidebar-toggle-line { 21 | position: relative; 22 | display: inline-block; 23 | vertical-align: top; 24 | height: 2px; 25 | width: 100%; 26 | background: white; 27 | margin-top: 3px; 28 | 29 | &:first-child { margin-top: 0; } 30 | } 31 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/footer/footer.styl: -------------------------------------------------------------------------------- 1 | .footer { 2 | font-size: 14px; 3 | color: $grey-dark; 4 | 5 | img { border: none; } 6 | } 7 | 8 | .footer-inner { text-align: center; } 9 | 10 | @keyframes iconAnimate { 11 | 0%, 100% { transform: scale(1); } 12 | 10%, 30% { transform: scale(0.9); } 13 | 20%, 40%, 60%, 80% { transform: scale(1.1); } 14 | 50%, 70% { transform: scale(1.1); } 15 | } 16 | 17 | if hexo-config('footer.icon.animated') { 18 | #animate { 19 | animation: iconAnimate 1.33s ease-in-out infinite; 20 | } 21 | } 22 | 23 | .with-love { 24 | display: inline-block; 25 | margin: 0 5px; 26 | color: unquote(hexo-config('footer.icon.color')); 27 | } 28 | 29 | .powered-by, 30 | .theme-info { display: inline-block; } 31 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/header/menu.styl: -------------------------------------------------------------------------------- 1 | // Menu 2 | // -------------------------------------------------- 3 | .menu { 4 | margin-top: 20px; 5 | padding-left: 0; 6 | text-align: center; 7 | } 8 | 9 | .menu .menu-item { 10 | display: inline-block; 11 | margin: 0 10px; 12 | list-style: none; 13 | 14 | +mobile() { 15 | margin-top: 10px; 16 | } 17 | 18 | a, span.exturl { 19 | show(); 20 | font-size: 13px; 21 | line-height: inherit; 22 | border-bottom: 1px solid $menu-link-border; 23 | transition-property: border-color; 24 | the-transition(); 25 | 26 | &:hover { border-bottom-color: $menu-link-hover-border; } 27 | } 28 | 29 | .fa { margin-right: 5px; } 30 | } 31 | 32 | .use-motion .menu-item { opacity: 0; } 33 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/rating.swig: -------------------------------------------------------------------------------- 1 | {% if theme.rating.enable and (not is_home() and is_post()) %} 2 | 20 | {% endif %} 21 | -------------------------------------------------------------------------------- /themes/next/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "theme-next", 3 | "version": "7.1.1", 4 | "homepage": "https://theme-next.org", 5 | "authors": [ 6 | "NexT (https://theme-next.org)" 7 | ], 8 | "description": "Elegant theme for Hexo", 9 | "repository": "https://github.com/theme-next/hexo-theme-next", 10 | "keywords": [ 11 | "hexo", 12 | "theme", 13 | "next" 14 | ], 15 | "license": "AGPL", 16 | "ignore": [ 17 | "**/.*", 18 | "node_modules", 19 | "bower_components", 20 | "source/lib", 21 | "test", 22 | "tests", 23 | "screenshots" 24 | ], 25 | "dependencies": { 26 | "font-awesome": "fontawesome#*", 27 | "jquery": "http://code.jquery.com/jquery-2.1.3.min.js", 28 | "velocity": "~1.2.1" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /themes/next/layout/index.swig: -------------------------------------------------------------------------------- 1 | {% extends '_layout.swig' %} 2 | {% import '_macro/post.swig' as post_template %} 3 | {% import '_macro/sidebar.swig' as sidebar_template %} 4 | 5 | {% block title %}{{ title }} – {{ config.ext_title }} {% if theme.index_with_subtitle and subtitle %} – {{ subtitle }}{% endif %}{% endblock %} 6 | 7 | {% block page_class %} 8 | {% if is_home() %}page-home{% endif -%} 9 | {% endblock %} 10 | 11 | {% block content %} 12 |
13 | {% for post in page.posts %} 14 | {{ post_template.render(post, true) }} 15 | {% endfor %} 16 |
17 | 18 | {% include '_partials/pagination.swig' %} 19 | {% endblock %} 20 | 21 | {% block sidebar %} 22 | {{ sidebar_template.render(false) }} 23 | {% endblock %} 24 | -------------------------------------------------------------------------------- /themes/next/scripts/helpers/engine.js: -------------------------------------------------------------------------------- 1 | /* global hexo */ 2 | 3 | 'use strict'; 4 | 5 | hexo.extend.helper.register('hexo_env', function(type) { 6 | return this.env[type]; 7 | }); 8 | 9 | hexo.extend.helper.register('next_env', function(type) { 10 | var path = require('path'); 11 | var env = require(path.normalize('../../package.json')); 12 | return env[type]; 13 | }); 14 | 15 | hexo.extend.helper.register('item_active', function(path, className) { 16 | var canonical = this.page.canonical_path; 17 | var current = this.url_for(canonical).replace('index.html', '', 'g'); 18 | var result = ''; 19 | 20 | if (current.indexOf(path) !== -1) { 21 | if (path !== '/' || path === current) { 22 | result = ' ' + className; 23 | } 24 | } 25 | return result; 26 | }); 27 | -------------------------------------------------------------------------------- /hexo-generator-tag/README.md: -------------------------------------------------------------------------------- 1 | # hexo-generator-tag 2 | 3 | [![Build Status](https://travis-ci.org/hexojs/hexo-generator-tag.svg?branch=master)](https://travis-ci.org/hexojs/hexo-generator-tag) [![NPM version](https://badge.fury.io/js/hexo-generator-tag.svg)](http://badge.fury.io/js/hexo-generator-tag) [![Coverage Status](https://img.shields.io/coveralls/hexojs/hexo-generator-tag.svg)](https://coveralls.io/r/hexojs/hexo-generator-tag?branch=master) 4 | 5 | Tag generator for [Hexo]. 6 | 7 | ## Installation 8 | 9 | ``` bash 10 | $ npm install hexo-generator-tag --save 11 | ``` 12 | 13 | ## Options 14 | 15 | ``` yaml 16 | tag_generator: 17 | per_page: 10 18 | ``` 19 | 20 | - **per_page**: Posts displayed per page. (0 = disable pagination) 21 | 22 | ## License 23 | 24 | MIT 25 | 26 | [Hexo]: http://hexo.io/ -------------------------------------------------------------------------------- /themes/next/layout/_third-party/comments/disqusjs.swig: -------------------------------------------------------------------------------- 1 | {% set disqusjs_css_url = '//cdn.jsdelivr.net/npm/disqusjs@1/dist/disqusjs.css' %} 2 | {% if theme.vendors.disqusjs_css %} 3 | {% set disqusjs_css_url = theme.vendors.disqusjs_css %} 4 | {% endif %} 5 | 6 | 7 | {% set disqusjs_js_url = '//cdn.jsdelivr.net/npm/disqusjs@1/dist/disqus.js' %} 8 | {% if theme.vendors.disqusjs_js %} 9 | {% set disqusjs_js_url = theme.vendors.disqusjs_js %} 10 | {% endif %} 11 | 12 | 13 | 20 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/comments/index.swig: -------------------------------------------------------------------------------- 1 | {% if theme.disqus.enable %} 2 | {% include 'disqus.swig' %} 3 | {% elif theme.changyan.enable and theme.changyan.appid and theme.changyan.appkey %} 4 | {% include 'changyan.swig' %} 5 | {% elif theme.valine.enable and theme.valine.appid and theme.valine.appkey %} 6 | {% include 'valine.swig' %} 7 | {% endif %} 8 | 9 | {% if page.comments %} 10 | {% if theme.livere_uid %} 11 | {% include 'livere.swig' %} 12 | {% elif theme.gitment.enable and theme.gitment.client_id %} 13 | {% include 'gitment.swig' %} 14 | {% elif theme.gitalk.enable %} 15 | {% include 'gitalk.swig' %} 16 | {% elif theme.disqusjs.enable and theme.disqusjs.apikey and theme.disqusjs.shortname %} 17 | {% include 'disqusjs.swig' %} 18 | {% endif %} 19 | {% endif %} 20 | -------------------------------------------------------------------------------- /themes/next/source/js/scroll-cookie.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function() { 2 | 3 | /* global Cookies */ 4 | 5 | // Set relative link path (without domain) 6 | var rpath = window.location.href.replace(window.location.origin, ''); 7 | 8 | // Write position in cookie 9 | var timeout; 10 | $(window).on('scroll', function() { 11 | clearTimeout(timeout); 12 | timeout = setTimeout(function() { 13 | Cookies.set('scroll-cookie', $(window).scrollTop() + '|' + rpath, { expires: 365, path: '' }); 14 | }, 250); 15 | }); 16 | 17 | // Read position from cookie 18 | if (Cookies.get('scroll-cookie') !== undefined) { 19 | var cvalues = Cookies.get('scroll-cookie').split('|'); 20 | if (cvalues[1] === rpath) { 21 | $(window).scrollTop(cvalues[0]); 22 | } 23 | } 24 | 25 | }); 26 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/pdf.swig: -------------------------------------------------------------------------------- 1 | {% if theme.pdf.enable %} 2 | 27 | {% endif %} 28 | -------------------------------------------------------------------------------- /themes/next/scripts/tags/include-raw.js: -------------------------------------------------------------------------------- 1 | /** 2 | * include-raw.js | https://theme-next.org/docs/tag-plugins/ 3 | */ 4 | 5 | /* global hexo */ 6 | 7 | 'use strict'; 8 | 9 | var pathFn = require('path'); 10 | var fs = require('hexo-fs'); 11 | 12 | function includeRaw(args) { 13 | var path = pathFn.join(hexo.source_dir, args[0]); 14 | 15 | return fs.exists(path).then(function(exist) { 16 | if (!exist) { 17 | hexo.log.error('Include file not found!'); 18 | return; 19 | } 20 | return fs.readFile(path).then(function(contents) { 21 | if (!contents) { 22 | hexo.log.warn('Include file empty.'); 23 | return; 24 | } 25 | return contents; 26 | }); 27 | }); 28 | } 29 | 30 | hexo.extend.tag.register('include_raw', includeRaw, {ends: false, async: true}); 31 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/sidebar/sidebar-nav.styl: -------------------------------------------------------------------------------- 1 | // Sidebar Navigation 2 | 3 | .sidebar-nav { 4 | margin: 0 0 20px; 5 | padding-left: 0; 6 | } 7 | 8 | .sidebar-nav li { 9 | display: inline-block; 10 | cursor: pointer; 11 | border-bottom: 1px solid transparent; 12 | font-size: 14px; 13 | color: $sidebar-nav-color; 14 | 15 | &:hover { color: $sidebar-nav-hover-color; } 16 | } 17 | 18 | .page-post-detail .sidebar-nav-toc { padding: 0 5px; } 19 | 20 | .page-post-detail .sidebar-nav-overview { margin-left: 10px; } 21 | 22 | .sidebar-nav .sidebar-nav-active { 23 | color: $sidebar-highlight; 24 | border-bottom-color: $sidebar-highlight; 25 | 26 | &:hover { color: $sidebar-highlight; } 27 | } 28 | 29 | .sidebar-panel { display: none; } 30 | .sidebar-panel-active { display: block; } 31 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/sidebar/site-state.styl: -------------------------------------------------------------------------------- 1 | .site-state { 2 | display: flex; 3 | justify-content: center; 4 | overflow: hidden; 5 | line-height: 1.4; 6 | white-space: nowrap; 7 | text-align: $site-state-align; 8 | margin-top: 10px; 9 | } 10 | 11 | .site-state-item { 12 | padding: 0 15px; 13 | border-left: 1px solid $site-state-item-border-color; 14 | 15 | &:first-child { border-left: none; } 16 | 17 | a { border-bottom: none; } 18 | } 19 | 20 | .site-state-item-count { 21 | show(); 22 | text-align: center; 23 | color: $site-state-item-count-color; 24 | font-weight: $font-weight-bold; 25 | font-size: $site-state-item-count-font-size; 26 | } 27 | 28 | .site-state-item-name { 29 | font-size: $site-state-item-name-font-size; 30 | color: $site-state-item-name-color; 31 | } 32 | -------------------------------------------------------------------------------- /themes/landscape/scripts/fancybox.js: -------------------------------------------------------------------------------- 1 | var rUrl = /((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[.\!\/\\w]*))?)/; 2 | 3 | /** 4 | * Fancybox tag 5 | * 6 | * Syntax: 7 | * {% fancybox /path/to/image [/path/to/thumbnail] [title] %} 8 | */ 9 | 10 | hexo.extend.tag.register('fancybox', function(args){ 11 | var original = args.shift(), 12 | thumbnail = ''; 13 | 14 | if (args.length && rUrl.test(args[0])){ 15 | thumbnail = args.shift(); 16 | } 17 | 18 | var title = args.join(' '); 19 | 20 | return '' + 21 | '' + title + '' 22 | '' + 23 | (title ? '' + title + '' : ''); 24 | }); -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/tags/group-pictures.styl: -------------------------------------------------------------------------------- 1 | .post .post-body .group-picture { 2 | img { 3 | box-sizing: border-box; 4 | padding: 0 3px; 5 | border: none; 6 | } 7 | } 8 | 9 | .post .group-picture-row { 10 | overflow: hidden; 11 | margin-top: 6px; 12 | &:first-child { margin-top: 0; } 13 | } 14 | 15 | .post .group-picture-column { float: left; } 16 | 17 | .page-post-detail .post-body .group-picture-column { 18 | float: none; 19 | margin-top: 10px; 20 | width: auto !important; 21 | img { margin: 0 auto; } 22 | } 23 | 24 | .page-archive { 25 | .group-picture-container { overflow: hidden; } 26 | .group-picture-row { 27 | float: left; 28 | &:first-child { margin-top: 6px; } 29 | } 30 | 31 | .group-picture-column { 32 | max-width: 150px; 33 | max-height: 150px; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /source/_drafts/2019-03-29.md: -------------------------------------------------------------------------------- 1 | # 相互调用 2 | 3 | JS 调用 Java 4 | 5 | ```java 6 | myWebView.addJavascriptInterface(new JsInteration(), "upchain"); 7 | 8 | public class JsInteration { 9 | 10 | @JavascriptInterface 11 | public void toastMessage(String message) { 12 | Toast.makeText(getApplicationContext(), message, Toast.LENGTH_LONG).show(); 13 | } 14 | } 15 | 16 | 17 | ``` 18 | 19 | ```js 20 | function toastMessage(message) { 21 | window.upchain.toastMessage(message) 22 | } 23 | ``` 24 | 25 | # JavaScript 调用Java 26 | 27 | 28 | ## 接口 SignCallbackJSInterface 29 | 30 | 31 | 32 | 33 | 34 | ```sequence 35 | Title: 获取账号Token种类 36 | JS->: fetch 37 | FetchTokensInteract->TokenRepository: fetch 38 | TokenRepository->TokenLocalSource: fetch 39 | TokenLocalSource-->>TokensViewModel: OnTokens 40 | ``` 41 | 42 | -------------------------------------------------------------------------------- /hexo-generator-category/README.md: -------------------------------------------------------------------------------- 1 | # hexo-generator-category 2 | 3 | [![Build Status](https://travis-ci.org/hexojs/hexo-generator-category.svg?branch=master)](https://travis-ci.org/hexojs/hexo-generator-category) [![NPM version](https://badge.fury.io/js/hexo-generator-category.svg)](http://badge.fury.io/js/hexo-generator-category) [![Coverage Status](https://img.shields.io/coveralls/hexojs/hexo-generator-category.svg)](https://coveralls.io/r/hexojs/hexo-generator-category?branch=master) 4 | 5 | Category generator for [Hexo]. 6 | 7 | ## Installation 8 | 9 | ``` bash 10 | $ npm install hexo-generator-category --save 11 | ``` 12 | 13 | ## Options 14 | 15 | ``` yaml 16 | category_generator: 17 | per_page: 10 18 | ``` 19 | 20 | - **per_page**: Posts displayed per page. (0 = disable pagination) 21 | 22 | ## License 23 | 24 | MIT 25 | 26 | [Hexo]: http://hexo.io/ -------------------------------------------------------------------------------- /themes/landscape/layout/_partial/post/nav.ejs: -------------------------------------------------------------------------------- 1 | <% if (post.prev || post.next){ %> 2 | 22 | <% } %> -------------------------------------------------------------------------------- /themes/landscape/source/css/_util/mixin.styl: -------------------------------------------------------------------------------- 1 | // http://www.zeldman.com/2012/03/01/replacing-the-9999px-hack-new-image-replacement/ 2 | hide-text() 3 | text-indent: 100% 4 | white-space: nowrap 5 | overflow: hidden 6 | 7 | // http://codepen.io/shshaw/full/gEiDt 8 | absolute-center(width, height = width) 9 | // margin: auto 10 | // position: absolute 11 | // top: 50% 12 | // top: 0 13 | // left: 0 14 | // bottom: 0 15 | // right: 0 16 | // width: width 17 | // height: height 18 | // overflow: auto 19 | width: width 20 | height: height 21 | position: absolute 22 | top: 50% 23 | left: 50% 24 | margin-top: width * -0.5 25 | margin-left: height * -0.5 26 | 27 | avoid-column-break() 28 | vendor("column-break-inside", avoid, only: webkit) 29 | page-break-inside: avoid // for firefox 30 | overflow: hidden // fix for firefox 31 | break-inside: avoid-column 32 | -------------------------------------------------------------------------------- /source/_posts/dev-meetup/dev_meeting_7.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 第7期 - 选对赛道,穿越凛冬:区块链的设计思想和演化逻辑 3 | permalink: dev_meeting_7 4 | date: 2018-12-28 11:41:23 5 | categories: 技术工坊 6 | tags: 共识 7 | hide_in_home: true 8 | un_subscription: true 9 | un_reward: true 10 | author: 晓娜 11 | --- 12 | 13 | #### 讲师:AMT社区共建者 Jason 14 | 15 | 分享大纲: 16 | 17 | 18 | 一、 伟大变革or旁氏泡沫:谁需要区块链,需要什么样的区块链? 19 | 20 | 二 、区块链对现实世界的依赖性:虚生于实,依于实。 21 | 22 | 三、 几大公链设计思想对比:面对不可能三角时各公链的取舍和结果 23 | 24 | 1)TPS:BTC,LTC,ETH的出块时间对比说明了什么 25 | 2) 去中心化: 如何面对用去中心化换TPS 26 | 3)安全:没有绝对,只有相对 27 | 28 | 四、 发展焦点: 29 | 30 | 1)协议共识 VS 社会共识 谁将获胜? 31 | 2)分裂是好是坏 :BTC分裂BCH, BCH分裂BSV 32 | 3)智能合约:新经济的核心 33 | 34 | 五、 下一跳去到哪里:TPS、新共识、跨链、应用落地(IBO STO等) 35 | 36 | 六 、匿名技术公链:最后的保留地 37 | 38 | 七 、前路展望:符合社会需要,百花迎春 39 | 40 | [点击下载PPT](https://img.learnblockchain.cn/pdf/meetup_7.pdf) 及 [现场视频](https://m.qlchat.com/live/channel/channelPage/2000003125933455.htm) 41 | -------------------------------------------------------------------------------- /themes/next/source/lib/font-awesome/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "font-awesome", 3 | "description": "Font Awesome", 4 | "keywords": [], 5 | "homepage": "http://fontawesome.io", 6 | "dependencies": {}, 7 | "devDependencies": {}, 8 | "license": [ 9 | "OFL-1.1", 10 | "MIT", 11 | "CC-BY-3.0" 12 | ], 13 | "main": [ 14 | "less/font-awesome.less", 15 | "scss/font-awesome.scss" 16 | ], 17 | "ignore": [ 18 | "*/.*", 19 | "*.json", 20 | "src", 21 | "*.yml", 22 | "Gemfile", 23 | "Gemfile.lock", 24 | "*.md" 25 | ], 26 | "version": "4.7.0", 27 | "_release": "4.7.0", 28 | "_resolution": { 29 | "type": "version", 30 | "tag": "v4.7.0", 31 | "commit": "a3fe90fa5f6fac55d197f9cbd18e3f57dafb716c" 32 | }, 33 | "_source": "https://github.com/FortAwesome/Font-Awesome.git", 34 | "_target": "*", 35 | "_originalSource": "fontawesome" 36 | } -------------------------------------------------------------------------------- /themes/next/layout/_partials/share/likely.swig: -------------------------------------------------------------------------------- 1 | {% set likely_js_url = '//cdn.jsdelivr.net/npm/ilyabirman-likely@2/release/likely.js' %} 2 | {% if theme.vendors.likely_js %} 3 | {% set likely_js_url = theme.vendors.likely_js %} 4 | {% endif %} 5 | 6 | 7 | {% set likely_css_url = '//cdn.jsdelivr.net/npm/ilyabirman-likely@2/release/likely.css' %} 8 | {% if theme.vendors.likely_css %} 9 | {% set likely_css_url = theme.vendors.likely_css %} 10 | {% endif %} 11 | 12 | 13 | {% if theme.likely.look == 'normal' %} 14 | {% set likely_look = 'likely' %} 15 | {% else %} 16 | {% set likely_look = 'likely likely-' + theme.likely.look %} 17 | {% endif %} 18 | 19 |
20 | {% for x in theme.likely.networks %} 21 |
{{ x }}
22 | {% endfor %} 23 |
24 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/tags/blockquote-center.styl: -------------------------------------------------------------------------------- 1 | // Blockquote with all children centered. 2 | .blockquote-center { 3 | position: relative; 4 | margin: 40px 0; 5 | padding: 0; 6 | border-left: none; 7 | text-align: center; 8 | 9 | &::before, &::after { 10 | position: absolute; 11 | content: ' '; 12 | show(); 13 | width: 100%; 14 | height: 24px; 15 | opacity: 0.2; 16 | background-repeat: no-repeat; 17 | background-position: 0 -6px; 18 | background-size: 22px 22px; 19 | } 20 | &::before { 21 | top: -20px; 22 | background-image: url($center-quote-left); 23 | border-top: 1px solid $grey-light; 24 | } 25 | &::after { 26 | bottom: -20px; 27 | background-image: url($center-quote-right); 28 | border-bottom: 1px solid $grey-light; 29 | background-position: 100% 8px; 30 | } 31 | 32 | p, div { text-align: center; } 33 | } 34 | -------------------------------------------------------------------------------- /source/_posts/2019-2/Ethereum-Studio.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 以太坊推出1.0版本网页IDE工具Ethereum-Studio 3 | permalink: Ethereum-Studio 4 | un_reward: true 5 | date: 2019-11-13 15:34:43 6 | categories: 资讯 7 | tags: Ethereum-Studio 8 | author: 影无双 9 | --- 10 | 11 | 12 | 13 | 号外号外,以太坊基金会正式推出基于网页的集成开发环境(IDE) Ethereum Studio 的 1.0 版本,开发者可以通过以太坊官网首页找到入口。Ethereum Studio (以太坊工作室)的目标是让开发人员在几分钟之内就可以基于以太坊进行开发,尽可能减少开发中的阻力,用户可以通过 Ethereum Studio 进行这些工作:在浏览器中开发和测试智能合约、将智能合约连接至前端网页应用、[通过三个模版教程引导他们的应用、一键分享项目](https://studio.ethereum.org/)。 14 | 15 | 16 | 17 | Ethereum Studio 是一个开源项目,代码已托管在 Github。以太坊基金会还特别感谢了与之共同开发 Ethereum Studio 的 Superblocks 团队,以及一些其他个人,比如 Andreas Wallendahl、Chris Ward、Robbie Bent 和 Martin Tellechea 等。 18 | 19 | [深入浅出区块链](https://learnblockchain.cn/) - 打造高质量区块链技术博客,[学区块链](https://learnblockchain.cn/2018/01/11/guide/)都来这里,关注[知乎](https://www.zhihu.com/people/xiong-li-bing/activities)、[微博](https://weibo.com/517623789)。 20 | 21 | -------------------------------------------------------------------------------- /themes/landscape/layout/_partial/after-footer.ejs: -------------------------------------------------------------------------------- 1 | <% if (config.disqus_shortname){ %> 2 | 15 | <% } %> 16 | 17 | 18 | 19 | <% if (theme.fancybox){ %> 20 | <%- css('fancybox/jquery.fancybox') %> 21 | <%- js('fancybox/jquery.fancybox.pack') %> 22 | <% } %> 23 | 24 | <%- js('js/script') %> 25 | -------------------------------------------------------------------------------- /themes/next/layout/_partials/post/reward.swig: -------------------------------------------------------------------------------- 1 |
2 |
{{ theme.reward_settings.comment }}
3 | 6 | 22 |
23 | -------------------------------------------------------------------------------- /themes/next/source/css/_schemes/Pisces/_sub-menu.styl: -------------------------------------------------------------------------------- 1 | .sub-menu { 2 | margin: 0; 3 | padding: 6px 0; 4 | background: #fff !important; 5 | border-bottom: 1px solid $table-border-color; 6 | } 7 | 8 | .sub-menu .menu-item { 9 | display: inline-block !important; 10 | 11 | & a, span.exturl { 12 | padding: initial !important; 13 | margin: 5px 10px; 14 | } 15 | 16 | & a:hover, span.exturl:hover { 17 | background: initial !important; 18 | color: $sidebar-highlight; 19 | } 20 | } 21 | 22 | .sub-menu .menu-item-active a { 23 | background: #fff !important; 24 | color: $sidebar-highlight; 25 | border-bottom-color: $sidebar-highlight; 26 | 27 | &:hover { 28 | background: #fff !important; 29 | border-bottom-color: $sidebar-highlight; 30 | } 31 | 32 | badges = hexo-config('menu_settings.badges'); 33 | if not badges { 34 | &:after { 35 | content: initial; 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /themes/next/source/images/quote-r.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 8 | 12 | 13 | -------------------------------------------------------------------------------- /themes/next/layout/_partials/head/head-unique.swig: -------------------------------------------------------------------------------- 1 | {{ 2 | open_graph({ 3 | twitter_id: theme.twitter, 4 | google_plus: theme.google_plus, 5 | fb_admins: theme.fb_admins, 6 | fb_app_id: theme.fb_app_id 7 | }) 8 | }} 9 | 10 | {% if theme.rss === '' and config.feed and config.feed.path %} 11 | {% set theme.rss = config.feed.path %} 12 | {% endif %} 13 | {% if theme.rss %} 14 | 15 | {% endif %} 16 | 17 | {% if theme.canonical %} 18 | {% set without_index = url.replace('index.html', '') %} 19 | {% set without_html = without_index.replace('.html', '') %} 20 | 21 | {% endif %} 22 | 23 | {# Exports some front-matter variables to Front-End #} 24 | 29 | -------------------------------------------------------------------------------- /themes/next/source/images/quote-l.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 8 | 13 | 14 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/search/algolia-search.swig: -------------------------------------------------------------------------------- 1 | {% if theme.algolia_search.enable %} 2 | 3 | {# S: Include Algolia instantsearch.js library #} 4 | {% set algolia_instant_css = url_for(theme.vendors._internal + '/algolia-instant-search/instantsearch.min.css') %} 5 | {% if theme.vendors.algolia_instant_css %} 6 | {% set algolia_instant_css = theme.vendors.algolia_instant_css %} 7 | {% endif %} 8 | 9 | 10 | {% set algolia_instant_js = url_for(theme.vendors._internal + '/algolia-instant-search/instantsearch.min.js') %} 11 | {% if theme.vendors.algolia_instant_js %} 12 | {% set algolia_instant_js = theme.vendors.algolia_instant_js %} 13 | {% endif %} 14 | 15 | {# E: Include Algolia instantsearch.js library #} 16 | 17 | 18 | {% endif %} 19 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/buttons.styl: -------------------------------------------------------------------------------- 1 | .btn { 2 | display: inline-block; 3 | padding: 0 20px; 4 | font-size: $btn-default-font-size; 5 | color: $btn-default-color; 6 | background: $btn-default-bg; 7 | border: $btn-default-border-width solid $btn-default-border-color; 8 | text-decoration: none; 9 | border-radius: $btn-default-radius; 10 | transition-property: background-color; 11 | the-transition(); 12 | line-height: 2; 13 | 14 | &:hover { 15 | border-color: $btn-default-hover-border-color; 16 | color: $btn-default-hover-color; 17 | background: $btn-default-hover-bg; 18 | } 19 | 20 | +.btn { 21 | margin: 0 0 8px 8px; 22 | } 23 | 24 | .fa-fw { 25 | width: (18em / 14); 26 | text-align: left; 27 | } 28 | } 29 | 30 | .btn-bar { 31 | show(); 32 | width: 22px; 33 | height: 2px; 34 | background: $text-color; 35 | border-radius: 1px; 36 | 37 | &+.btn-bar { margin-top: 4px; } 38 | } 39 | -------------------------------------------------------------------------------- /themes/next/.github/support.yml: -------------------------------------------------------------------------------- 1 | # Configuration for Support Requests - https://github.com/dessant/support-requests 2 | 3 | # Label used to mark issues as support requests 4 | supportLabel: Support 5 | 6 | # Comment to post on issues marked as support requests, `{issue-author}` is an 7 | # optional placeholder. Set to `false` to disable 8 | supportComment: > 9 | :wave: @{issue-author}, we use the issue tracker exclusively for bug reports 10 | and feature requests. However, this issue appears to be a support request. 11 | Please use our [support channels](https://github.com/theme-next/hexo-theme-next/tree/master#feedback) to get help with the project. 12 | 13 | # Close issues marked as support requests 14 | close: true 15 | 16 | # Lock issues marked as support requests 17 | lock: false 18 | 19 | # Assign `off-topic` as the reason for locking. Set to `false` to disable 20 | setLockReason: true 21 | 22 | # Repository to extend settings from 23 | # _extends: repo 24 | -------------------------------------------------------------------------------- /themes/next/source/css/_variables/Gemini.styl: -------------------------------------------------------------------------------- 1 | // Variables of Gemini scheme 2 | // ================================================= 3 | 4 | @import "Pisces.styl"; 5 | 6 | // Settings for some of the most global styles. 7 | // -------------------------------------------------- 8 | $body-bg-color = #eee 9 | 10 | // Borders. 11 | // -------------------------------------------------- 12 | $box-shadow-inner = 0 2px 2px 0 rgba(0,0,0,.12), 0 3px 1px -2px rgba(0,0,0,.06), 0 1px 5px 0 rgba(0,0,0,.12) 13 | $box-shadow = 0 2px 2px 0 rgba(0,0,0,.12), 0 3px 1px -2px rgba(0,0,0,.06), 0 1px 5px 0 rgba(0,0,0,.12), 0 -1px .5px 0 rgba(0,0,0,.09) 14 | 15 | $border-radius-inner = initial 16 | $border-radius = initial 17 | //$border-radius-inner = 0 0 3px 3px; 18 | //$border-radius = 3px; 19 | 20 | // Back to top 21 | $b2t-sidebar-bg-color = $body-bg-color 22 | -------------------------------------------------------------------------------- /themes/next/.github/release-drafter.yml: -------------------------------------------------------------------------------- 1 | # Configuration for Release Drafter - https://github.com/toolmantim/release-drafter 2 | 3 | name-template: v$NEXT_MINOR_VERSION 4 | tag-template: v$NEXT_MINOR_VERSION 5 | categories: 6 | - title: 💥 Breaking Changes 7 | label: Breaking Change 8 | 9 | - title: 🌟 New Features 10 | label: New Feature 11 | 12 | - title: ⭐ Features 13 | label: Feature 14 | 15 | - title: 🛠 Improvements 16 | label: Improvement 17 | 18 | - title: 🐞 Bug Fixes 19 | label: Bug Fix 20 | 21 | - title: 📖 Documentation 22 | label: Docs 23 | 24 | - title: 🌍 Localization 25 | label: i18n 26 | 27 | change-template: '- $TITLE (#$NUMBER)' 28 | no-changes-template: '- No changes' 29 | template: | 30 | $CHANGES 31 | 32 | *** 33 | 34 | For full changes, see the [comparison between $PREVIOUS_TAG and v$NEXT_MINOR_VERSION](https://github.com/theme-next/hexo-theme-next/compare/v$PREVIOUS_TAG...v$NEXT_MINOR_VERSION) 35 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/analytics/vkontakte-api.swig: -------------------------------------------------------------------------------- 1 | {% if theme.vkontakte_api.enable %} 2 |
3 | 25 | {% endif %} 26 | -------------------------------------------------------------------------------- /source/_posts/Q&A/about-qa.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 关于区块链问答 3 | permalink: about-qa 4 | date: 2019-01-12 11:25:59 5 | categories: 问与答 6 | comments: ture 7 | top: 2 8 | hide_wechat_subscriber: true 9 | --- 10 | 11 | 12 | 我们在“知识星球”平台开通了**专业的区块链问答服务**, 扫描文末二维码加入“问答星球” 。 13 | 14 | 15 | 16 | 目前问答服务一年费用是149元,在一年内可以任意提问。 17 | 18 | 对问答服务做几点说明: 19 | 20 | 1. 提问之前可以看看是不是别人已经遇到类似的问题。 21 | 2. 提问的时候,务必把问题详细描述(尽可能多的细节)。 22 | 3. 老师会尽可能及时回复,但是也没法做到实时,请大家理解。 23 | 4. 如果较长时间没有回复,可以加下微信:xlbxiong , 提醒下老师。 24 | 5. **没法保证所有的问题都可以解答**,不过深入浅出博客文章相关领域的问题,一般问题不大,即使不能完全回答上,也会给大家思路。 25 | 6. 如果你的问题过于细节(如在一段代码中排查bug),请谨慎订阅,老师可能无法直接解决你的问题,只能给提供方法和思路。 26 | 7. 如果对解答不满意,**3天可以向平台申请全额退款**,7天内不满意可以联系微信:xlbxiong 退款100元。 27 | 8. **微信内不解答问题,请大家到星球提问,(购买课程的学员,可以在相应课程平台提问)**。 28 | 29 | 相信我们这份订阅是超值的,除了解答问题之外,还会不定期发表区块链技术动态,新技术的理解。 30 | 希望加入星球都是热爱学习、热爱技术的同学,我为订阅用户建了一交流群, 加微信:xlbxiong,备注:“订阅用户” 入群。 31 | 32 | ![区块链问答服务](https://img.learnblockchain.cn/2019/05/15587097728852.jpg) 33 |

扫描二维码加入“问答星球”

34 | 35 | -------------------------------------------------------------------------------- /themes/next/layout/_partials/page/breadcrumb.swig: -------------------------------------------------------------------------------- 1 | {% set paths = page.path.split('/') %} 2 | {% set count = paths.length %} 3 | {% if count > 2 %} 4 | {% set current = 0 %} 5 | {% set link = '' %} 6 | 27 | {% endif %} 28 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/rainbow.styl: -------------------------------------------------------------------------------- 1 | body { 2 | overscroll-behavior: none; 3 | } 4 | @media screen and (-webkit-min-device-pixel-ratio: 0) { 5 | body:before { 6 | right: 0; 7 | top: 0; 8 | left: 0; 9 | height: 100px; 10 | z-index: 2147483647; 11 | position: fixed; 12 | content: ""; 13 | show(); 14 | transform: translateY(-99.99px); 15 | background: linear-gradient(124deg, 16 | #FF0000, 17 | #FF7F00, 18 | #FFFF00, 19 | #7FFF00, 20 | #00FF00, 21 | #00FF7F, 22 | #00FFFF, 23 | #007FFF, 24 | #0000FF, 25 | #7F00FF, 26 | #FF00FF, 27 | #FF007F, 28 | #FF0000); 29 | animation: rainbow 15s ease infinite; 30 | background-size: 1000% 1000%; 31 | } 32 | } 33 | @keyframes rainbow { 34 | 0% { 35 | background-position: 0% 80%; 36 | } 37 | 50% { 38 | background-position: 100% 20%; 39 | } 40 | 100% { 41 | background-position: 0% 80%; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /themes/next/scripts/tags/button.js: -------------------------------------------------------------------------------- 1 | /** 2 | * button.js | https://theme-next.org/docs/tag-plugins/button 3 | */ 4 | 5 | /* global hexo */ 6 | 7 | 'use strict'; 8 | 9 | function postButton(args) { 10 | args = args.join(' ').split(','); 11 | var url = args[0]; 12 | var text = args[1] || ''; 13 | var icon = args[2] || ''; 14 | var title = args[3] || ''; 15 | 16 | if (!url) { 17 | hexo.log.warn('URL can NOT be empty'); 18 | } 19 | 20 | text = text.trim(); 21 | icon = icon.trim(); 22 | title = title.trim(); 23 | 24 | var result = [` 0 && result.push(` title="${title}"`); 26 | result.push('>'); 27 | icon.length > 0 && result.push(``); 28 | text.length > 0 && result.push(text); 29 | result.push(''); 30 | 31 | return result.join(''); 32 | } 33 | 34 | hexo.extend.tag.register('button', postButton, {ends: false}); 35 | hexo.extend.tag.register('btn', postButton, {ends: false}); 36 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/post/post-nav.styl: -------------------------------------------------------------------------------- 1 | .post-nav { 2 | display: table; 3 | margin-top: 15px; 4 | width: 100%; 5 | border-top: 1px solid $gainsboro; 6 | } 7 | 8 | .post-nav-divider { 9 | display: table-cell; 10 | width: 10%; 11 | } 12 | 13 | .post-nav-item { 14 | display: table-cell; 15 | padding: 10px 0 0 0; 16 | width: 45%; 17 | vertical-align: top; 18 | 19 | a { 20 | position: relative; 21 | show(); 22 | line-height: 25px; 23 | font-size: 14px; 24 | color: $link-color; 25 | border-bottom: none; 26 | 27 | &:hover { 28 | color: $link-hover-color; 29 | border-bottom: none; 30 | } 31 | 32 | &:active { top: 2px; } 33 | } 34 | 35 | .fa { 36 | font-size: 12px; 37 | margin-right: 5px; 38 | } 39 | } 40 | 41 | .post-nav-next { 42 | a { padding-left: 5px; } 43 | } 44 | 45 | .post-nav-prev { 46 | text-align: right; 47 | 48 | a { padding-right: 5px; } 49 | 50 | .fa { margin-left: 5px; } 51 | } 52 | -------------------------------------------------------------------------------- /themes/next/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | #node_js: node 3 | node_js: lts/* 4 | 5 | cache: 6 | directories: 7 | - node_modules 8 | 9 | install: npm install 10 | 11 | before_script: 12 | - npm install -g gulp 13 | 14 | addons: 15 | browserstack: 16 | username: "ivannginx1" 17 | access_key: 18 | secure: "NutOhdgtUdBUXMPZhy8X1F1Jq+tan1LeNOV0FArBt15SNlxtNArqhiyTi4XnG9MPruX4306aGF2RBrKso+OiGNRdGtRGngH613Q0GWNtlC/boMqnI7fHqLIyCs6S12y2uA8PK4Ifxg9bZ0VtCTYYbMy+p1KvBM//L12vmtfdnby8z5Qvex3tB3dLoPOR50CKkINHJVDLm+iVRFrdz4/83oDsulZSRRGIaxu5taDWPIcp3fYZtre2Nc+RXcsyFDyjN7U0Hvr5tKBbloJxXEQEBv2xLkMOtp85nmCPD06s1Il8Wus1ux3raVsfUyaW5FpNX37Jeb5e00RQUM1wgU5m75H6qiGwDvQswbugJG0i/a2nNfsgVmbrSZdMnkHcx2Uxmrw4ejyEP5NSrJSBi05Ck1fQ4UsZ4Qkdf1fd04SI0LpLWt43eoNO/7rHKsQoP4LCX9gxKUuC075NEBLODyJ529RYfA6dKKwwH6o0ZbOgASmCoAWaM65g4+FHRnJcKL/Kj9ZWklQtRa7/ynlHaA65jefFS2lB8Ut6d3rXDDBih9mIrwV1uUaEH96xgAN42bgU/vY6FGzNkDOYZqj4YfsepDM0wbOsslFie7JZq7iFjsYvrXqLvYUMk37AZwQ2Sb6uH4tIT4Qw/4oZfDzA1En3/8HdZJ28nKW/lzjwMSqheIY=" 19 | -------------------------------------------------------------------------------- /themes/next/layout/_macro/menu/menu-item.swig: -------------------------------------------------------------------------------- 1 | {% macro render(name, value) %} 2 | {% import 'menu-badge.swig' as menu_badge %} 3 | 4 | {% set itemURL = value.split('||')[0] | trim %} 5 | {% if itemURL.indexOf('http') != 0 %} 6 | {% set itemURL = itemURL | replace('//', '/', 'g') %} 7 | {% endif %} 8 | 23 | 24 | {% endmacro %} 25 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/scaffolding/tables.styl: -------------------------------------------------------------------------------- 1 | .table-container { 2 | margin: 20px 0; 3 | overflow: auto; 4 | -webkit-overflow-scrolling: touch; 5 | } 6 | 7 | .highlight .table-container { 8 | margin: 0px; 9 | } 10 | 11 | table { 12 | width: $table-width; 13 | border-collapse: collapse; 14 | border-spacing: 0; 15 | font-size: $table-font-size; 16 | } 17 | 18 | table > tbody > tr { 19 | &:nth-of-type(odd) { background-color: $table-row-odd-bg-color; } 20 | &:hover { background-color: $table-row-hover-bg-color; } 21 | } 22 | 23 | caption, th, td { 24 | padding: $table-cell-padding; 25 | text-align: $table-content-alignment; 26 | vertical-align: $table-content-vertical; 27 | font-weight: normal; 28 | } 29 | 30 | th, td { 31 | border: 1px solid $table-border-color; 32 | border-bottom: 3px solid $table-cell-border-bottom-color; 33 | } 34 | 35 | th { 36 | padding-bottom: 10px; 37 | font-weight: $table-th-font-weight; 38 | } 39 | 40 | td { 41 | border-bottom-width: 1px; 42 | } 43 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/needsharebutton.swig: -------------------------------------------------------------------------------- 1 | {% if theme.needmoreshare2.enable %} 2 | {% set needmoreshare2_js = url_for(theme.vendors._internal + '/needsharebutton/needsharebutton.js') %} 3 | {% if theme.vendors.needmoreshare2_js %} 4 | {% set needmoreshare2_js = theme.vendors.needmoreshare2_js %} 5 | {% endif %} 6 | 7 | 23 | {% endif %} 24 | -------------------------------------------------------------------------------- /themes/landscape/source/fancybox/helpers/jquery.fancybox-thumbs.css: -------------------------------------------------------------------------------- 1 | #fancybox-thumbs { 2 | position: fixed; 3 | left: 0; 4 | width: 100%; 5 | overflow: hidden; 6 | z-index: 8050; 7 | } 8 | 9 | #fancybox-thumbs.bottom { 10 | bottom: 2px; 11 | } 12 | 13 | #fancybox-thumbs.top { 14 | top: 2px; 15 | } 16 | 17 | #fancybox-thumbs ul { 18 | position: relative; 19 | list-style: none; 20 | margin: 0; 21 | padding: 0; 22 | } 23 | 24 | #fancybox-thumbs ul li { 25 | float: left; 26 | padding: 1px; 27 | opacity: 0.5; 28 | } 29 | 30 | #fancybox-thumbs ul li.active { 31 | opacity: 0.75; 32 | padding: 0; 33 | border: 1px solid #fff; 34 | } 35 | 36 | #fancybox-thumbs ul li:hover { 37 | opacity: 1; 38 | } 39 | 40 | #fancybox-thumbs ul li a { 41 | display: block; 42 | position: relative; 43 | overflow: hidden; 44 | border: 1px solid #222; 45 | background: #111; 46 | outline: none; 47 | } 48 | 49 | #fancybox-thumbs ul li img { 50 | display: block; 51 | position: relative; 52 | border: 0; 53 | padding: 0; 54 | max-width: none; 55 | } -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/post/post-widgets.styl: -------------------------------------------------------------------------------- 1 | .post-widgets { 2 | border-top: 1px solid #eee; 3 | padding-top: 9px; 4 | margin-top: 45px; 5 | display: flex; 6 | justify-content: center; 7 | flex-wrap: wrap; 8 | align-items: center; 9 | 10 | .post-meta-divider { 11 | height: 25px; 12 | color: $grey-dark; 13 | } 14 | } 15 | 16 | .wp_rating { 17 | height: 20px; 18 | margin-right: 10px; 19 | text-align: center; 20 | line-height: 20px; 21 | padding-top: 6px; 22 | } 23 | 24 | .social-like { 25 | font-size: 14px; 26 | text-align: center; 27 | display: flex; 28 | justify-content: center; 29 | } 30 | 31 | .vk_like { 32 | width: 85px; 33 | height: 21px; 34 | padding-top: 7px; 35 | align-self: center; 36 | } 37 | 38 | .fb_like { 39 | height: 30px; 40 | align-self: center; 41 | } 42 | 43 | .bdsharebuttonbox { 44 | margin-top: 10px; 45 | display: flex; 46 | justify-content: center; 47 | a { border: none; } 48 | } 49 | 50 | .bdshare-slide-button-box a { border: none; } 51 | -------------------------------------------------------------------------------- /themes/next/source/lib/jquery_lazyload/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery_lazyload", 3 | "version": "1.9.7", 4 | "homepage": "http://www.appelsiini.net/projects/lazyload", 5 | "authors": [ 6 | "Mika Tuupola " 7 | ], 8 | "description": "jQuery plugin for lazy loading images", 9 | "main": [ 10 | "jquery.lazyload.js", 11 | "jquery.scrollstop.js" 12 | ], 13 | "license": "MIT", 14 | "ignore": [ 15 | "**/.*", 16 | "**/*.min.js", 17 | "**/*.html", 18 | "**/*.textile", 19 | "Gruntfile.js", 20 | "lazyload.jquery.json", 21 | "package.json", 22 | "node_modules", 23 | "bower_components", 24 | "test", 25 | "img" 26 | ], 27 | "_release": "1.9.7", 28 | "_resolution": { 29 | "type": "version", 30 | "tag": "1.9.7", 31 | "commit": "218e50eb4999fe59ac94b939a65c8c988d1d420b" 32 | }, 33 | "_source": "git://github.com/tuupola/jquery_lazyload.git", 34 | "_target": "~1.9.7", 35 | "_originalSource": "jquery.lazyload", 36 | "_direct": true 37 | } -------------------------------------------------------------------------------- /source/_posts/Q&A/is-contract.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 如何区分合约地址还是普通账号地址? 3 | permalink: is-contract 4 | date: 2019-09-17 11:25:59 5 | categories: 问与答 6 | tags: 7 | - Solidity 8 | author: Tiny熊 9 | --- 10 | 11 | 如何区分合约地址还是普通账号地址? 12 | 13 | 14 | 15 | 我们经常有需要区分一个地址是合约地址还是外部账号地址,区分的关键是看这个地址有没有与之相关联的代码。 16 | EVM提供了一个操作码EXTCODESIZE,用来获取地址相关联的代码大小(长度),如果是外部账号地址,则没有代码返回。因此我们可以使用以下方法判断合约地址及外部账号地址: 17 | 18 | ``` 19 | function isContract(address addr) internal view returns (bool) { 20 | uint256 size; 21 | assembly { size := extcodesize(addr) } 22 | return size > 0; 23 | } 24 | ``` 25 | 26 | 如果是在合约外部判断,则可以使用web3.eth.getCode(),或者是对应的JSON-RPC方法eth_getcode。 27 | getCode()用来获取参数地址所对应合约的代码,如果参数是一个外部账号地址,则返回"0x";如果参数是合约,则返回对应的字节码,如下所示: 28 | 29 | > web3.eth.getCode("0xa5Acc472597C1e1651270da9081Cc5a0b38258E3") 30 | "0x" 31 | 32 | web3.eth.getCode("0xd5677cf67b5aa051bb40496e68ad359eb97cfbf8") 33 | > "0x600160008035811a818181146012578301005b601b6001356025565b8060005260206000f25b600060078202905091905056" 34 | 35 | 这样我们就可以通过getCode()的内容判断是哪一种地址了。 36 | -------------------------------------------------------------------------------- /hexo-generator-tag/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2014 Tommy Chen 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /themes/landscape/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013 Tommy Chen 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /hexo-generator-category/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2014 Tommy Chen 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /source/_posts/Q&A/contract-this.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 智能合约构造函数中可以使用this吗? 3 | permalink: contract-this 4 | date: 2019-07-25 11:25:59 5 | categories: 问与答 6 | tags: 7 | - Solidity 8 | author: Tiny熊 9 | --- 10 | 11 | 智能合约的地址什么时候有效? 在构造函数中可以使用this吗? 12 | 13 | 14 | 15 | 通常的直觉是智能合约应该在构造完之后(即构造函数constructor执行完之后),其实并不是,在constructor中是可以使用this来表示当前合约的地址,因为在发起交易的时候,就已经可以确定合约的地址,参考[合约地址的计算](https://learnblockchain.cn/2019/06/10/address-compute/)。 16 | 17 | 可以使用下面的代码测试一下: 18 | 19 | ``` 20 | 21 | pragma solidity ^0.5.0; 22 | 23 | contract Test { 24 | address public thisAddress; 25 | event LogAddr(address); 26 | 27 | constructor() { 28 | thisAddress = address(this); 29 | emit LogAddr(address(this)); 30 | } 31 | } 32 | ``` 33 | 34 | 35 | 深入浅出区块链知识星球提供专业的[区块链问答](https://learnblockchain.cn/2019/01/12/about-qa/)服务,如果你需要问题一直没有思路,也许可以考虑咨询下老师。 36 | 37 | [深入浅出区块链](https://learnblockchain.cn/) - 打造高质量区块链技术博客,[学区块链](https://learnblockchain.cn/2018/01/11/guide/)都来这里,关注[知乎](https://www.zhihu.com/people/xiong-li-bing/activities)、[微博](https://weibo.com/517623789)。 38 | 39 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/post/post-meta.styl: -------------------------------------------------------------------------------- 1 | .posts-expand .post-meta { 2 | margin: 3px 0 60px 0; 3 | color: $grey-dark; 4 | font-family: $font-family-posts; 5 | font-size: 12px; 6 | text-align: center; 7 | 8 | .post-category-list { 9 | display: inline-block; 10 | margin: 0; 11 | padding: 3px; 12 | } 13 | .post-category-list-link { color: $grey-dark; } 14 | 15 | .post-description { 16 | font-size: 14px; 17 | margin-top: 2px; 18 | } 19 | 20 | time { 21 | border-bottom: 1px dashed $grey-dark; 22 | cursor: help; 23 | } 24 | } 25 | 26 | .post-symbolscount { 27 | if !hexo-config('symbols_count_time.separated_meta') { display: inline-block; } 28 | } 29 | 30 | .post-meta-divider { 31 | margin: 0 .5em; 32 | } 33 | 34 | .post-meta-item-icon { 35 | margin-right: 3px; 36 | +tablet() { 37 | display: inline-block; 38 | } 39 | +mobile() { 40 | display: inline-block; 41 | } 42 | } 43 | 44 | .post-meta-item-text { 45 | +tablet() { 46 | hide(); 47 | } 48 | +mobile() { 49 | hide(); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/header/site-meta.styl: -------------------------------------------------------------------------------- 1 | .site-meta { 2 | margin: 0; 3 | text-align: $site-meta-text-align; 4 | 5 | +mobile() { text-align: center; } 6 | } 7 | 8 | .brand { 9 | position: relative; 10 | display: inline-block; 11 | padding: 0 40px; 12 | color: $brand-color; 13 | background: $brand-bg; 14 | border-bottom: none; 15 | &:hover { color: $brand-hover-color; } 16 | } 17 | 18 | .logo { 19 | display: inline-block; 20 | margin-right: 5px; 21 | line-height: 36px; 22 | vertical-align: top; 23 | } 24 | 25 | .site-title { 26 | display: inline-block; 27 | vertical-align: top; 28 | line-height: 36px; 29 | font-size: $logo-font-size; 30 | font-weight: normal; 31 | font-family: $font-family-logo; 32 | } 33 | 34 | .site-subtitle { 35 | margin-top: 10px; 36 | font-size: $subtitle-font-size; 37 | color: $subtitle-color; 38 | } 39 | 40 | .use-motion { 41 | .brand { opacity: 0; } 42 | 43 | .logo, .site-title, .site-subtitle, .custom-logo-image { 44 | opacity: 0; 45 | position: relative; 46 | top: -10px; 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /themes/landscape/layout/_partial/archive.ejs: -------------------------------------------------------------------------------- 1 | <% if (pagination == 2){ %> 2 | <% page.posts.each(function(post){ %> 3 | <%- partial('article', {post: post, index: true}) %> 4 | <% }) %> 5 | <% } else { %> 6 | <% var last; %> 7 | <% page.posts.each(function(post, i){ %> 8 | <% var year = post.date.year(); %> 9 | <% if (last != year){ %> 10 | <% if (last != null){ %> 11 | 12 | <% } %> 13 | <% last = year; %> 14 |
15 |
16 | <%= year %> 17 |
18 |
19 | <% } %> 20 | <%- partial('archive-post', {post: post, even: i % 2 == 0}) %> 21 | <% }) %> 22 | <% if (page.posts.length){ %> 23 |
24 | <% } %> 25 | <% } %> 26 | <% if (page.total > 1){ %> 27 | 33 | <% } %> -------------------------------------------------------------------------------- /themes/next/layout/_partials/post/post-related.swig: -------------------------------------------------------------------------------- 1 | {% set popular_posts = popular_posts_json(theme.related_posts.params, post) %} 2 | {% if popular_posts.json and popular_posts.json.length > 0 %} 3 | 4 | 20 | {% endif %} 21 | -------------------------------------------------------------------------------- /themes/next/source/lib/jquery_lazyload/README.md: -------------------------------------------------------------------------------- 1 |

jquery-lazyload for NexT

2 | 3 |

Installation

4 | 5 |

Step 1 → Go to NexT dir

6 | 7 | Change dir to **NexT** directory. There must be `layout`, `source`, `languages` and other directories: 8 | 9 | ```sh 10 | $ cd themes/next 11 | $ ls 12 | bower.json _config.yml docs gulpfile.coffee languages layout LICENSE.md package.json README.md scripts source test 13 | ``` 14 | 15 |

Step 2 → Get module

16 | 17 | Install module to `source/lib` directory: 18 | 19 | ```sh 20 | $ git clone https://github.com/theme-next/theme-next-jquery-lazyload source/lib/jquery_lazyload 21 | ``` 22 | 23 |

Step 3 → Set it up

24 | 25 | Enable module in **NexT** `_config.yml` file: 26 | 27 | ```yml 28 | lazyload: true 29 | ``` 30 | 31 |

Update

32 | 33 | ```sh 34 | $ cd themes/next/source/lib/jquery_lazyload 35 | $ git pull 36 | ``` 37 | -------------------------------------------------------------------------------- /source/_posts/2019-2/key-secret.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 关于私钥管理及安全 3 | permalink: key-secret 4 | date: 2019-09-06 15:10:54 5 | categories: 基础理论 6 | tags: 7 | - 私钥 8 | author: Gavin & AA 9 | --- 10 | 11 | 下面是一些有用的技巧,帮助你更好地履行私钥管理这个重大的责任: 12 | 13 | 14 | 15 | * 不要随意用自己的方式来保障安全,要使用久经考验的标准方法。 16 | * 账户越重要(例如,受控资产的价值越高,或智能合约越重要),越应采取更高的安全措施。 17 | * 空气隔离设备(不通过任何方式与互联网连接)能够提供最高级别的安全保障,但并非所有账户都需要达到这一级别。 18 | * 切勿以简单形式存储你的私钥,尤其是以数字化方式存储。 19 | * 私钥可以以加密形式存储,作为数字“keystore”文件。加密后,它们需要密码才能解锁。当系统提示你选择密码时,请将其设置为强(即长且随机),备份密码,不要共享密码。如果你没有密码管理器,请将其记下并存放在安全且保密的地方。如果要访问你的账户,你需要同时拥keystore文件和密码。 20 | * 不要把密码保存在数字文档、数字照片、截屏、在线网盘、加密的PDF等。不要临时拼凑一些安全解决方案。使用密码管理器或者纸和笔。 21 | * 当提示你备份以助记词显示的私钥时,使用纸和笔把它们记下来。不要把这个任务置之脑后,因为你一定会忘记。万一你计算机系统中的所有数据都丢失了,或者你把密码弄丢了,这张小纸条就会派上用处。然而,这也可能为攻击者提供可乘之机,进而窃取私钥。所以,千万不要以数字信息的形式存储私钥,建议把这张小纸条锁在抽屉或保险箱里。 22 | * 在进行大笔的数字资产转账之前(特别是转到新地址),首先做一笔小金额的测试转账(例如不到一美元),并且等待收据以确认交易成功。 23 | * 创建新账户时,首先只向新地址发送一笔小额的测试交易。收到测试交易后,尝试从该账户再次发回。创建账户可能会出错的原因有很多,如果出现问题,最好是通过这样的小额交易来发现问题。如果测试正常工作,那说明一切都没问题。 24 | * 公共区块浏览器是一种独立查看交易是否已被网络接受的简单方法。但是,这种便利性会对你的隐私产生负面影响,因为你把地址透露给了区块浏览器,这可能导致你被追踪到。 25 | 26 | 节选自: 精通以太坊 《Mastering Ethereum 》 版权归原作者所有。 27 | -------------------------------------------------------------------------------- /themes/next/layout/tag.swig: -------------------------------------------------------------------------------- 1 | {% extends '_layout.swig' %} 2 | {% import '_macro/post-collapse.swig' as post_template %} 3 | {% import '_macro/sidebar.swig' as sidebar_template %} 4 | 5 | {% block title %}{{ __('title.tag') }}: {{ page.tag }} | {{ title }}{% endblock %} 6 | 7 | {% block content %} 8 | 9 | {#################} 10 | {### TAG BLOCK ###} 11 | {#################} 12 |
13 | 14 |
15 |
16 | <{% if theme.seo %}h2{% else %}h1{% endif %}>{# 17 | #}{{ page.tag }}{# 18 | #}{{ __('title.tag') }} 19 | 20 |
21 | 22 | {% for post in page.posts %} 23 | {{ post_template.render(post) }} 24 | {% endfor %} 25 |
26 | 27 |
28 | {#####################} 29 | {### END TAG BLOCK ###} 30 | {#####################} 31 | 32 | {% include '_partials/pagination.swig' %} 33 | 34 | {% endblock %} 35 | 36 | {% block sidebar %} 37 | {{ sidebar_template.render(false) }} 38 | {% endblock %} 39 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/analytics/application-insights.swig: -------------------------------------------------------------------------------- 1 | {% if theme.application_insights %} 2 | 11 | {% endif %} 12 | -------------------------------------------------------------------------------- /themes/next/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "hexo-theme-next", 3 | "version": "7.1.1", 4 | "description": "Elegant and powerful theme for Hexo", 5 | "main": "index.js", 6 | "directories": { 7 | "test": "test" 8 | }, 9 | "scripts": { 10 | "test": "gulp", 11 | "contributors:add": "all-contributors add", 12 | "contributors:generate": "all-contributors generate" 13 | }, 14 | "repository": { 15 | "type": "git", 16 | "url": "git+https://github.com/theme-next/hexo-theme-next.git" 17 | }, 18 | "keywords": [ 19 | "hexo", 20 | "theme", 21 | "next" 22 | ], 23 | "author": "NexT (https://theme-next.org)", 24 | "license": "AGPL", 25 | "bugs": { 26 | "url": "https://github.com/theme-next/hexo-theme-next/issues" 27 | }, 28 | "homepage": "https://theme-next.org", 29 | "devDependencies": { 30 | "all-contributors-cli": "^5.4.0", 31 | "coffee-script": "^1.10.0", 32 | "gulp": "^3.9.0", 33 | "gulp-jshint": "^1.12.0", 34 | "gulp-shell": "^0.6.1", 35 | "js-yaml": "^3.8.1", 36 | "jshint-stylish": "^2.1.0", 37 | "stylint": "^1.5.9" 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /themes/next/source/images/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | image/svg+xml 24 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/analytics/busuanzi-counter.swig: -------------------------------------------------------------------------------- 1 | {% if theme.busuanzi_count.enable %} 2 |
3 | 4 | 5 | {% if theme.busuanzi_count.total_visitors %} 6 | 9 | 10 | 11 | 12 | {% endif %} 13 | 14 | {% if theme.busuanzi_count.total_visitors and theme.busuanzi_count.total_views %} 15 | 16 | {% endif %} 17 | 18 | {% if theme.busuanzi_count.total_views %} 19 | 22 | 23 | 24 | 25 | {% endif %} 26 |
27 | {% endif %} 28 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/third-party/copy-code.styl: -------------------------------------------------------------------------------- 1 | .copy-btn { 2 | display: inline-block; 3 | padding: 6px 12px; 4 | font-size: 13px; 5 | font-weight: 700; 6 | line-height: 20px; 7 | color: #333; 8 | white-space: nowrap; 9 | vertical-align: middle; 10 | cursor: pointer; 11 | if hexo-config('codeblock.copy_button.style') == 'flat' { 12 | background-color: #fff; 13 | border: none; 14 | } 15 | else { 16 | background-color: #eee; 17 | background-image: linear-gradient(#fcfcfc, #eee); 18 | border: 1px solid #d5d5d5; 19 | border-radius: 3px; 20 | } 21 | user-select: none; 22 | outline: 0; 23 | } 24 | 25 | .highlight-wrap .copy-btn { 26 | transition: opacity .3s ease-in-out; 27 | opacity: 0; 28 | padding: 2px 6px; 29 | position: absolute; 30 | if hexo-config('codeblock.copy_button.style') == 'flat' { 31 | right: 0px; 32 | height: 42px; 33 | } 34 | else { 35 | right: 4px; 36 | top: 8px; 37 | } 38 | } 39 | 40 | .highlight-wrap:hover .copy-btn, 41 | .highlight-wrap .copy-btn:focus { 42 | opacity: 1; 43 | } 44 | 45 | .highlight-wrap { 46 | position: relative; 47 | } 48 | -------------------------------------------------------------------------------- /hexo-generator-index2/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Jamling 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/sidebar/sidebar-author.styl: -------------------------------------------------------------------------------- 1 | .site-author-image { 2 | show(); 3 | margin: 0 auto; 4 | padding: $site-author-image-padding; 5 | max-width: $site-author-image-width; 6 | height: $site-author-image-height; 7 | border: $site-author-image-border-width solid $site-author-image-border-color; 8 | opacity: hexo-config('avatar.opacity') is a 'unit' ? hexo-config('avatar.opacity') : 1; 9 | } 10 | 11 | if hexo-config('avatar.rounded') { 12 | .site-author-image { 13 | border-radius: 100%; 14 | } 15 | } 16 | 17 | if hexo-config('avatar.rotated') { 18 | .site-author-image { 19 | transition: transform 1.0s ease-out; 20 | } 21 | 22 | .site-author-image:hover { 23 | transform: rotateZ(360deg); 24 | } 25 | } 26 | 27 | .site-author-name { 28 | margin: $site-author-name-margin; 29 | text-align: $site-author-name-align; 30 | color: $site-author-name-color; 31 | font-weight: $site-author-name-weight; 32 | } 33 | 34 | .site-description { 35 | margin-top: $site-description-margin-top; 36 | text-align: $site-description-align; 37 | font-size: $site-description-font-size; 38 | color: $site-description-color; 39 | } 40 | -------------------------------------------------------------------------------- /themes/next/layout/category.swig: -------------------------------------------------------------------------------- 1 | {% extends '_layout.swig' %} 2 | {% import '_macro/post-collapse.swig' as post_template %} 3 | {% import '_macro/sidebar.swig' as sidebar_template %} 4 | 5 | {% block title %}{{ __('title.category') }}: {{ page.category }} | {{ title }}{% endblock %} 6 | 7 | {% block content %} 8 | 9 | {######################} 10 | {### CATEGORY BLOCK ###} 11 | {######################} 12 |
13 | 14 |
15 |
16 | <{% if theme.seo %}h2{% else %}h1{% endif %}>{# 17 | #}{{ page.category }}{# 18 | #}{{ __('title.category') }} 19 | 20 |
21 | 22 | {% for post in page.posts %} 23 | {{ post_template.render(post) }} 24 | {% endfor %} 25 |
26 | 27 |
28 | {##########################} 29 | {### END CATEGORY BLOCK ###} 30 | {##########################} 31 | 32 | {% include '_partials/pagination.swig' %} 33 | 34 | {% endblock %} 35 | 36 | {% block sidebar %} 37 | {{ sidebar_template.render(false) }} 38 | {% endblock %} 39 | -------------------------------------------------------------------------------- /source/_posts/dev-meetup/dev_meeting_11.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 技术工坊 第11期 3 | permalink: dev_meeting_11 4 | date: 2019-03-16 18:47:23 5 | categories: 技术工坊 6 | tags: 7 | - FileCoin 8 | - EOS 9 | hide_in_home: true 10 | un_subscription: true 11 | un_reward: true 12 | author: 晓娜 13 | --- 14 | 15 | **分享嘉宾:杨尉 先河系统CTO** 16 | 17 | 话题简介:Filecoin 基础及开发网络实战 18 | 19 | 话题大纲: 20 | 21 | 1. Filecoin的定义及设计目的 22 | 2. Filecoin与IPFS的关系 23 | 3. Filecoin网络中的角色 24 | 4. Filecoin核心概念理解 25 | 5. Filecoin开发网络实战 26 | 27 | 28 | [点击下载PPT](https://img.learnblockchain.cn/pdf/filecoin_11.pdf) 或[收听音频](https://m.qlchat.com/live/channel/channelPage/2000003954872128.htm) 29 | 30 | **分享嘉宾:温国兵 SuperONE COO** 31 | 32 | 话题简介:EOS 钱包,DApp 超级入口 33 | 34 | 话题大纲: 35 | 36 | 1. EOS 公链简介 37 | 2. EOS 钱包概览 38 | 3. EOS 钱包技术架构 39 | 4. DApp 如何接入 EOS 钱包 40 | 5. EOS DApp 生态 41 | 42 | 43 | [点击下载PPT](https://img.learnblockchain.cn/pdf/EOS-DApp_11.pdf)或[收听音频](https://m.qlchat.com/live/channel/channelPage/2000003954872128.htm) 44 | 45 | 46 | **分享嘉宾:谭长生 DLB数链产品经理** 47 | 48 | 话题简介:大数据+区块链项目遇到的那些事儿 49 | 话题大纲: 50 | 1. 大数据+区块链的业态进化 51 | 2. 目前大数据产业面临的挑战 52 | 3. DLB如何建立一个普惠新生态 53 | 54 | 55 | [点击下载PPT](https://img.learnblockchain.cn/pdf/dlb_11.pdf) 56 | 57 | 58 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/comments/valine.swig: -------------------------------------------------------------------------------- 1 | {% set leancloud_uri = '//cdn1.lncld.net/static/js/3.11.1/av-min.js' %} 2 | {% if theme.vendors.leancloud %} 3 | {% set leancloud_uri = theme.vendors.leancloud %} 4 | {% endif %} 5 | 6 | 7 | {% set valine_uri = '//unpkg.com/valine/dist/Valine.min.js' %} 8 | {% if theme.vendors.valine %} 9 | {% set valine_uri = theme.vendors.valine %} 10 | {% endif %} 11 | 12 | 13 | 33 | -------------------------------------------------------------------------------- /themes/next/layout/_partials/post/post-copyright.swig: -------------------------------------------------------------------------------- 1 | {% set ccLicense = theme.creative_commons.license | lower %} 2 | {% set ccLanguage = theme.creative_commons.language %} 3 | {% set ccIcon = '' %} 4 | {% set ccText = ccLicense | upper %} 5 | {% if ccLicense === 'zero' %} 6 | {% set ccType = 'publicdomain/zero/1.0/' + ccLanguage %} 7 | {% else %} 8 | {% set ccType = 'licenses/' + ccLicense + '/4.0/' + ccLanguage %} 9 | {% endif %} 10 | {% set ccURL = 'https://learnblockchain.cn/about/#版权及转载声明' %} 11 | 12 |
    13 |
  • 14 | {{ __('post.copyright.author') + __('symbol.colon') }} {# 15 | #}{{ post.author || author }}{# 16 | #}
  • 17 |
  • 18 | {{ __('post.copyright.link') + __('symbol.colon') }} 19 | {% set postURL = post.url || post.permalink %} 20 | {{ next_url(postURL, postURL, {title: post.title}) }} 21 |
  • 22 |
  • 23 | {{ __('post.copyright.license_title') + __('symbol.colon') }} {# 24 | #}{{ __('post.copyright.license_content', next_url(ccURL, ccIcon + ccText)) }}{# 25 | #}
  • 26 |
27 | -------------------------------------------------------------------------------- /themes/next/scripts/tags/full-image.js: -------------------------------------------------------------------------------- 1 | /** 2 | * full-image.js | https://theme-next.org/docs/tag-plugins/full-image 3 | */ 4 | 5 | /* global hexo */ 6 | 7 | 'use strict'; 8 | 9 | function fullImage(args) { 10 | args = args.join(' ').split(','); 11 | var mixed = args[0].split('@'); 12 | var img = mixed[0]; 13 | var src = mixed[1] === 'lazy' ? '/images/loading.gif" data-original="' + img : img; 14 | var alt = args[1] || ''; 15 | var title = args[2] || ''; 16 | var width = args[3] || ''; 17 | 18 | if (!img) { 19 | hexo.log.warn('Image src can NOT be empty'); 20 | } 21 | 22 | var image = [` 0 && image.push(`alt="${alt.trim()}"`); 24 | title.length > 0 && image.push(`title="${title.trim()}"`); 25 | width.length > 0 && image.push(`style="max-width: none; width:${width};"`); 26 | image.push('/>'); 27 | 28 | return image.join(' '); 29 | } 30 | 31 | hexo.extend.tag.register('fullimage', fullImage, {ends: false}); 32 | hexo.extend.tag.register('fi', fullImage, {ends: false}); 33 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/quicklink.swig: -------------------------------------------------------------------------------- 1 | {% if theme.quicklink.enable %} 2 | {% set quicklink_uri = url_for(theme.vendors._internal + '/quicklink/dist/quicklink.umd.js') %} 3 | {% if theme.vendors.quicklink %} 4 | {% set quicklink_uri = theme.vendors.quicklink %} 5 | {% endif %} 6 | 7 | {% if is_home() %} 8 | {% if theme.quicklink.home %} 9 | {% set loadQL = true %} 10 | {% endif %} 11 | {% endif %} 12 | 13 | {% if is_archive() %} 14 | {% if theme.quicklink.archive %} 15 | {% set loadQL = true %} 16 | {% endif %} 17 | {% endif %} 18 | 19 | {% if loadQL or (page.quicklink or post.quicklink) %} 20 | 21 | 34 | {% endif %} 35 | {% endif %} 36 | -------------------------------------------------------------------------------- /themes/landscape/layout/_partial/header.ejs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/post/post-title.styl: -------------------------------------------------------------------------------- 1 | .posts-expand .post-title { 2 | word-wrap(); 3 | text-align: center; 4 | font-weight: $posts-expand-title-font-weight; 5 | 6 | if hexo-config('post_edit.enable') { 7 | .post-edit-link { 8 | color: #bbb; 9 | display: inline-block; 10 | float: right; 11 | border-bottom: none; 12 | the-transition-ease-in(); 13 | margin-left: -1.2em; 14 | +mobile-small() { 15 | margin-left: initial; 16 | } 17 | &:hover { 18 | color: black; 19 | } 20 | } 21 | } 22 | } 23 | 24 | .posts-expand .post-title-link { 25 | display: inline-block; 26 | position: relative; 27 | color: $black-light; 28 | border-bottom: none; 29 | line-height: 1.2; 30 | vertical-align: top; 31 | 32 | &::before { 33 | content: ""; 34 | position: absolute; 35 | width: 100%; 36 | height: 2px; 37 | bottom: 0; 38 | left: 0; 39 | background-color: #000; 40 | visibility: hidden; 41 | transform: scaleX(0); 42 | the-transition(); 43 | } 44 | 45 | &:hover::before { 46 | visibility: visible; 47 | transform: scaleX(1); 48 | } 49 | 50 | .fa { 51 | font-size: 20px; 52 | margin-left: 5px; 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /themes/next/.stylintrc: -------------------------------------------------------------------------------- 1 | { 2 | "blocks": false, 3 | "brackets": "always", 4 | "colons": "always", 5 | "colors": "always", 6 | "commaSpace": "always", 7 | "commentSpace": "always", 8 | "cssLiteral": "never", 9 | "customProperties": [], 10 | "depthLimit": false, 11 | "duplicates": true, 12 | "efficient": "always", 13 | "exclude": [], 14 | "extendPref": false, 15 | "globalDupe": false, 16 | "groupOutputByFile": true, 17 | "indentPref": false, 18 | "leadingZero": "never", 19 | "maxErrors": false, 20 | "maxWarnings": false, 21 | "mixed": false, 22 | "mixins": [], 23 | "namingConvention": "lowercase-dash", 24 | "namingConventionStrict": false, 25 | "none": "never", 26 | "noImportant": true, 27 | "parenSpace": false, 28 | "placeholders": "always", 29 | "prefixVarsWithDollar": "always", 30 | "quotePref": false, 31 | "reporterOptions": { 32 | "columns": ["lineData", "severity", "description", "rule"], 33 | "columnSplitter": " ", 34 | "showHeaders": false, 35 | "truncate": true 36 | }, 37 | "semicolons": "always", 38 | "sortOrder": "grouped", 39 | "stackedProperties": false, 40 | "trailingWhitespace": "never", 41 | "universal": false, 42 | "valid": true, 43 | "zeroUnits": "never", 44 | "zIndexNormalize": false 45 | } 46 | -------------------------------------------------------------------------------- /source/_posts/2019/govern.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 谈谈区块链(去中心化)治理 3 | date: 2019-06-01 14:23:00 4 | permalink: govern 5 | categories: 杂文 6 | tags: 治理 7 | author: Tiny熊 8 | --- 9 | 10 | 治理,这个词在英语系国家用的很多,国内使用比较少,原意是控制、引导和操纵,指的是在特定范围内行使权威。如何在众多不同利益共同发挥作用的领域建立一致或取得认同,以便实施某项计划。 11 | 12 | 13 | 14 | ## 区块链治理 15 | 16 | 区块链是去中心化的,那么**如何协调众多的利益方来进行区块链平台的改进**,这就是区块链治理,即治理让区块链进化。 17 | 改进通常包括:采用何种方案修复已知问题,加入哪些新的特性,甚至是如何管理社区资金。 18 | 利益方通常包括:持币者(用户)、矿工(或者验证人)、核心开发者、项目基金会。 19 | 20 | 区块链信任来源就是相互制衡下共同遵守规格,同时这种制衡也给治理带来了困难。 21 | 22 | ## 区块链治理演进 23 | 24 | ### 链下(社区)治理 25 | 26 | 以比特币为例,治理过程大概是:社区广泛讨论 -> 形成BIP(比特币改进提案)-> 开发人员实现 -> 矿工上线。 27 | 28 | 矿工选择什么样的BIP部署上线进而修改协议是最为关键的一步,而又难以达成一致因此有旷日持久的大区块vs.隔离见证的争议,最终共识分裂,形成分叉。 29 | 30 | [以太坊](https://learnblockchain.cn/2017/11/20/whatiseth/)的治理过程与比特币类似,不过V神的巨大影响力以及以太坊一开始就有比较明确的发展路线图(代码中提前内置了对一些升级的准备),使得以太坊治理更容易达成共识(尤其是V神支持的某些改进)。 不过即便如此也因为DAO事件发生分叉。 31 | 32 | 链下治理的缺陷非常明显,就是很容易陷入争议,导致分支(有时即便达成了共识,效率也非常低)。 33 | 34 | ### 链上治理 35 | 36 | 针对分叉治理的缺陷, 逐渐有项目开始探索链上治理,持币者通过对进行投票表决,表决通过的提案才能部署上线。Decred最早实施了链上治理,在实际运行过程也遇到普通用户参与投票意愿很低,一些PoS链则通过 Staking 的方式和治理绑定,日常的治理有选出的验证人来进行,重大议题依然可以有持币者公决。 37 | 38 | 链上治理相对于链下(社区)治理有不小的进步,如何进行更好的链上治理,仍然是业界探索的方向之一。 39 | 40 | 41 | 参考文章:http://123net.cn/2019/05/29/跨链释放-dapp-创新潜能/ 42 | 43 | [深入浅出区块链](https://learnblockchain.cn/)-系统学习区块链,学区块链的都在这里,打造最好的区块链技术博客。 44 | -------------------------------------------------------------------------------- /themes/next/.github/stale.yml: -------------------------------------------------------------------------------- 1 | # Configuration for probot-stale - https://github.com/probot/stale 2 | 3 | # Number of days of inactivity before an Issue or Pull Request becomes stale 4 | daysUntilStale: 30 5 | # Number of days of inactivity before a stale Issue or Pull Request is closed 6 | daysUntilClose: 7 7 | # Issues or Pull Requests with these labels will never be considered stale. Set to `[]` to disable 8 | exemptLabels: 9 | - bug 10 | - feature request 11 | - improvement need 12 | - wait for answer 13 | - need verify 14 | - question 15 | - backlog 16 | - docs 17 | # Label to use when marking as stale 18 | staleLabel: stale 19 | # Comment to post when marking as stale. Set to `false` to disable 20 | markComment: > 21 | This issue has been automatically marked as stale because lack of 22 | recent activity. It will be closed if no further activity occurs. Thank you 23 | for your contributions. You can also use our [support channels](https://github.com/theme-next/hexo-theme-next#feedback) to get help with the project. 24 | # Comment to post when removing the stale label. Set to `false` to disable 25 | unmarkComment: false 26 | # Comment to post when closing a stale Issue or Pull Request. Set to `false` to disable 27 | closeComment: false 28 | # Limit to only `issues` or `pulls` 29 | only: issues 30 | -------------------------------------------------------------------------------- /themes/next/source/css/_schemes/Mist/_header.styl: -------------------------------------------------------------------------------- 1 | // Header 2 | // -------------------------------------------------- 3 | .header { background: $whitesmoke; } 4 | .header-inner { 5 | clearfix(); 6 | padding: 20px 0; 7 | display: flex; 8 | align-items: center; 9 | justify-content: center; 10 | 11 | +mobile() { 12 | show(); 13 | width: auto; 14 | padding: 10px; 15 | } 16 | } 17 | 18 | .site-meta { 19 | float: left; 20 | margin-left: -20px; 21 | line-height: normal; 22 | 23 | +mobile() { 24 | margin-left: 10px; 25 | } 26 | 27 | .brand { 28 | padding: 2px 1px; 29 | background: none; 30 | 31 | +mobile() { display: block; } 32 | } 33 | 34 | .logo { display: none; } 35 | 36 | .site-title { 37 | font-size: 22px; 38 | font-weight: bolder; 39 | 40 | +mobile() { line-height: 34px; } 41 | } 42 | } 43 | 44 | .logo-line-before, 45 | .logo-line-after { 46 | show(); 47 | overflow: hidden; 48 | margin: 0 auto; 49 | width: 75%; 50 | 51 | +mobile() { display: none; } 52 | 53 | i { 54 | position: relative; 55 | show(); 56 | height: 2px; 57 | background: $black-deep; 58 | +mobile() { height: 3px; } 59 | } 60 | } 61 | 62 | .use-motion { 63 | .logo-line-before i { left: -100%; } 64 | .logo-line-after i { right: -100%; } 65 | } 66 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/post/post-expand.styl: -------------------------------------------------------------------------------- 1 | // TODO: Refactor. 2 | 3 | .posts-expand { 4 | padding-top: 40px; 5 | } 6 | 7 | +mobile() { 8 | .posts-expand { 9 | margin: 0 20px; 10 | } 11 | 12 | .post-body { 13 | pre { 14 | .gutter pre { 15 | padding-right: 10px; 16 | } 17 | } 18 | 19 | .highlight { 20 | margin-left: 0px; 21 | margin-right: 0px; 22 | padding: 0; 23 | .gutter pre { 24 | padding-right: 10px; 25 | } 26 | } 27 | } 28 | } 29 | 30 | .posts-expand .post-body { 31 | +desktop() { 32 | text-align: unquote(hexo-config('text_align.desktop')); 33 | } 34 | +tablet-mobile() { 35 | text-align: unquote(hexo-config('text_align.mobile')); 36 | } 37 | 38 | h2, h3, h4, h5, h6 { 39 | padding-top: 10px; 40 | 41 | .header-anchor { 42 | float: right; 43 | margin-left: 10px; 44 | color: $grey-light; 45 | border-bottom-style: none; 46 | visibility: hidden; 47 | 48 | &:hover { 49 | color: inherit; 50 | } 51 | } 52 | 53 | &:hover .header-anchor { 54 | visibility: visible; 55 | } 56 | } 57 | 58 | img { 59 | box-sizing: border-box; 60 | margin: 0 auto 25px; 61 | padding: 3px; 62 | border: 1px solid $gray-lighter; 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /themes/next/layout/_partials/github-banner.swig: -------------------------------------------------------------------------------- 1 | {% if theme.github_banner.enable %} 2 | {% set github_URL = theme.github_banner.permalink %} 3 | {% set github_title = theme.github_banner.title %} 4 | 5 | {% set github_image = '' %} 6 | 7 | {{ next_url(github_URL, github_image, {class: 'github-corner', title: github_title, "aria-label": github_title}) }} 8 | {% endif %} 9 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/header/github-banner.styl: -------------------------------------------------------------------------------- 1 | @keyframes octocat-wave { 2 | 0%, 100% { 3 | transform: rotate(0); 4 | } 5 | 20%, 60% { 6 | transform: rotate(-25deg); 7 | } 8 | 40%, 80% { 9 | transform: rotate(10deg); 10 | } 11 | } 12 | 13 | .github-corner { 14 | scheme = hexo-config('scheme'); 15 | bg_color = unquote(hexo-config('android_chrome_color')); 16 | mobile_layout_economy = hexo-config('mobile_layout_economy'); 17 | 18 | :hover .octo-arm { 19 | animation: octocat-wave 560ms ease-in-out; 20 | } 21 | > svg { 22 | fill: bg_color; 23 | color: #fff; 24 | position: absolute; 25 | top: 0; 26 | border: 0; 27 | right: 0; 28 | } 29 | +tablet-mobile() { 30 | > svg { 31 | if (scheme == 'Pisces') || (scheme == 'Gemini') { 32 | fill: #fff; 33 | color: bg_color; 34 | } 35 | } 36 | .github-corner:hover .octo-arm { 37 | animation: none; 38 | } 39 | .github-corner .octo-arm { 40 | animation: octocat-wave 560ms ease-in-out; 41 | } 42 | } 43 | +mobile() { 44 | > svg { 45 | if (scheme == 'Mist') { 46 | top: inherit; 47 | if mobile_layout_economy { 48 | +mobile-small() { 49 | margin-top: initial; 50 | } 51 | } 52 | } 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /themes/landscape/layout/_partial/head.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | <% 6 | var title = page.title; 7 | 8 | if (is_archive()){ 9 | title = __('archive_a'); 10 | 11 | if (is_month()){ 12 | title += ': ' + page.year + '/' + page.month; 13 | } else if (is_year()){ 14 | title += ': ' + page.year; 15 | } 16 | } else if (is_category()){ 17 | title = __('category') + ': ' + page.category; 18 | } else if (is_tag()){ 19 | title = __('tag') + ': ' + page.tag; 20 | } 21 | %> 22 | <% if (title){ %><%= title %> | <% } %><%= config.title %> 23 | 24 | <%- open_graph({twitter_id: theme.twitter, google_plus: theme.google_plus, fb_admins: theme.fb_admins, fb_app_id: theme.fb_app_id}) %> 25 | <% if (theme.rss){ %> 26 | 27 | <% } %> 28 | <% if (theme.favicon){ %> 29 | 30 | <% } %> 31 | <% if (config.highlight.enable){ %> 32 | 33 | <% } %> 34 | <%- css('css/style') %> 35 | <%- partial('google-analytics') %> 36 | 37 | -------------------------------------------------------------------------------- /themes/landscape/source/css/_extend.styl: -------------------------------------------------------------------------------- 1 | $block-caption 2 | text-decoration: none 3 | text-transform: uppercase 4 | letter-spacing: 2px 5 | color: color-grey 6 | margin-bottom: 1em 7 | margin-left: 5px 8 | line-height: 1em 9 | text-shadow: 0 1px #fff 10 | font-weight: bold 11 | 12 | $block 13 | background: #fff 14 | box-shadow: 1px 2px 3px #ddd 15 | border: 1px solid color-border 16 | border-radius: 3px 17 | 18 | $base-style 19 | h1 20 | font-size: 2em 21 | h2 22 | font-size: 1.5em 23 | h3 24 | font-size: 1.3em 25 | h4 26 | font-size: 1.2em 27 | h5 28 | font-size: 1em 29 | h6 30 | font-size: 1em 31 | color: color-grey 32 | hr 33 | border: 1px dashed color-border 34 | strong 35 | font-weight: bold 36 | em, cite 37 | font-style: italic 38 | sup, sub 39 | font-size: 0.75em 40 | line-height: 0 41 | position: relative 42 | vertical-align: baseline 43 | sup 44 | top: -0.5em 45 | sub 46 | bottom: -0.2em 47 | small 48 | font-size: 0.85em 49 | acronym, abbr 50 | border-bottom: 1px dotted 51 | ul, ol, dl 52 | margin: 0 20px 53 | line-height: line-height 54 | ul, ol 55 | ul, ol 56 | margin-top: 0 57 | margin-bottom: 0 58 | ul 59 | list-style: disc 60 | ol 61 | list-style: decimal 62 | dt 63 | font-weight: bold -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/post/post-reward.styl: -------------------------------------------------------------------------------- 1 | #reward-container { 2 | padding: 10px 0; 3 | margin: 20px auto; 4 | width: 90%; 5 | text-align: center; 6 | } 7 | 8 | #reward-button { 9 | cursor: pointer; 10 | border: 0; 11 | outline: 0; 12 | display: inline-block; 13 | vertical-align: text-top; 14 | margin: 0; 15 | padding: 0 15px; 16 | border-radius: 5px; 17 | height: $font-size-large * 2; 18 | line-height: $font-size-large * 2; 19 | font-size: $font-size-large; 20 | color: #fff; 21 | background: #F44336; 22 | letter-spacing: normal; 23 | text-transform: none; 24 | text-indent: 0px; 25 | text-shadow: none; 26 | } 27 | 28 | #reward-button span:hover { 29 | background: #F7877F; 30 | } 31 | 32 | #qr { 33 | padding-top: 20px; 34 | 35 | a { 36 | border: 0; 37 | } 38 | 39 | img { 40 | width: 180px; 41 | max-width: 100%; 42 | display: inline-block; 43 | margin: 0.8em 2em 0 2em; 44 | } 45 | 46 | p { 47 | text-align: center; 48 | } 49 | 50 | if hexo-config('reward_settings.animation') { 51 | & > div:hover p { 52 | animation: roll 0.1s infinite linear; 53 | } 54 | 55 | @keyframes roll { 56 | from { 57 | transform: rotateZ(30deg); 58 | } 59 | to { 60 | transform: rotateZ(-30deg); 61 | } 62 | } 63 | } 64 | } 65 | --------------------------------------------------------------------------------