Repository: TaibiaoGuo/blockchain101 Branch: master Commit: c5b0cd22ca22 Files: 77 Total size: 161.9 KB Directory structure: gitextract_p4q0e2c9/ ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ └── --issue--.md │ └── workflows/ │ ├── gePagesDeployment.yml │ └── ghPagesDeployment.yml ├── .gitignore ├── LICENSE ├── README.md ├── config.toml ├── content/ │ ├── 2019-2020-01-plan.md │ ├── 2019-2020-02-plan.md │ ├── 2019-2020-03-plan.md │ ├── 2019-2020-04-plan.md │ ├── 2019-2020-07-ipfs.md │ ├── 2019-2020-others-01.md │ ├── 2019-2020-spring-class-schedule.md │ ├── 2019-2020-tools-aliyun-ports.md │ ├── 2019-2020-tools-docker.md │ ├── 2019-2020-tools-install-docker.md │ ├── contact/ │ │ └── _index.md │ ├── search/ │ │ └── _index.md │ └── tools/ │ └── _index.md ├── data/ │ └── tools.yml ├── resources/ │ └── _gen/ │ └── assets/ │ └── scss/ │ └── scss/ │ ├── style.scss_b95b077eb505d5c0aff8055eaced30ad.content │ └── style.scss_b95b077eb505d5c0aff8055eaced30ad.json └── themes/ └── northendlab/ ├── LICENSE ├── README.md ├── archetypes/ │ └── default.md ├── assets/ │ ├── js/ │ │ └── script.js │ └── scss/ │ ├── _buttons.scss │ ├── _common.scss │ ├── _mixins.scss │ ├── _typography.scss │ ├── _variables.scss │ ├── style.scss │ └── templates/ │ ├── _main.scss │ └── _navigation.scss ├── exampleSite/ │ ├── .forestry/ │ │ ├── front_matter/ │ │ │ └── templates/ │ │ │ ├── author.yml │ │ │ ├── post.yml │ │ │ └── tools.yml │ │ └── settings.yml │ ├── config.toml │ ├── content/ │ │ ├── author/ │ │ │ ├── john-doe.md │ │ │ └── mark-dinn.md │ │ ├── contact/ │ │ │ └── _index.md │ │ ├── my-awesome-blog-post-2.md │ │ ├── my-awesome-blog-post-3.md │ │ ├── my-awesome-blog-post-4.md │ │ ├── my-awesome-blog-post-5.md │ │ ├── my-awesome-blog-post-6.md │ │ ├── my-awesome-blog-post.1.md │ │ ├── my-awesome-blog-post.2.md │ │ ├── my-awesome-blog-post.3.md │ │ ├── my-awesome-blog-post.4.md │ │ ├── my-awesome-blog-post.md │ │ ├── search/ │ │ │ └── _index.md │ │ └── tools/ │ │ └── _index.md │ ├── data/ │ │ └── tools.yml │ └── resources/ │ └── _gen/ │ └── assets/ │ └── scss/ │ └── scss/ │ ├── style.scss_b95b077eb505d5c0aff8055eaced30ad.content │ └── style.scss_b95b077eb505d5c0aff8055eaced30ad.json ├── layouts/ │ ├── 404.html │ ├── _default/ │ │ ├── article.html │ │ ├── baseof.html │ │ ├── index.json │ │ ├── list.html │ │ └── single.html │ ├── author/ │ │ └── single.html │ ├── contact/ │ │ └── list.html │ ├── index.html │ ├── partials/ │ │ ├── footer.html │ │ ├── head.html │ │ ├── header.html │ │ └── preloader.html │ ├── search/ │ │ └── list.html │ └── tools/ │ └── list.html └── static/ ├── .htaccess └── plugins/ ├── search/ │ ├── mark.js │ └── search.js └── themify-icons/ └── themify-icons.css ================================================ FILE CONTENTS ================================================ ================================================ FILE: .github/ISSUE_TEMPLATE/--issue--.md ================================================ --- name: 问答issue模板 about: Describe this issue template's purpose here. title: '' labels: '' assignees: '' --- issue应该包含一个简单明了的issue标题和一段帮助其他人理解问题的问题详情,阐述你对问题的思考。 > 举例: > issue标题:ABCD(AI、Blockchain、Cloud、BigData)战略中区块链怎样成为ACD的基石? > issue详情:ABCD(AI、Blockchain、Cloud、BigData)是数字经济中常常被提及的战略。区块链目前还存在性能受限、普及率低等问题,但其能建立去点对点信任的特性让其在数字经济中具有广泛的应用场景。区块链作为ACD的基石的过程中,会遇到哪些必须要解决的问题,会带来哪些机遇? ================================================ FILE: .github/workflows/gePagesDeployment.yml ================================================ name: gitee Pages on: push: branches: - master jobs: build-deploy: runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v1 # v2 does not have submodules option now # with: # submodules: true - name: Setup Hugo uses: peaceiris/actions-hugo@v2 with: hugo-version: 'latest' extended: true - name: Add Parameters run: echo -e '[[params.social]] \n icon = "ti-github" \n link = "https://gitee.com/taibiaoguo/blockchain101"' >> config.toml - name: Build run: hugo --minify -b https://taibiaoguo.gitee.io/blockchain101/ - name: Deploy uses: peaceiris/actions-gh-pages@v3 with: deploy_key: ${{ secrets.GHPAGES_ACTIONS_DEPLOY_KEY }} publish_branch: ge-pages publish_dir: ./public user_name: ${{ secrets.USERNAME }} user_email: ${{ secrets.EMAILADDRESS }} ================================================ FILE: .github/workflows/ghPagesDeployment.yml ================================================ name: github Pages on: push: branches: - master jobs: build-deploy: runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v1 # v2 does not have submodules option now # with: # submodules: true - name: Setup Hugo uses: peaceiris/actions-hugo@v2 with: hugo-version: 'latest' extended: true - name: Add Parameters run: echo -e '[[params.social]] \n icon = "ti-github" \n link = "https://github.com/taibiaoguo/blockchain101"' >> config.toml - name: Build run: hugo --minify -b https://taibiaoguo.github.io/blockchain101/ - name: Deploy uses: peaceiris/actions-gh-pages@v3 with: deploy_key: ${{ secrets.GHPAGES_ACTIONS_DEPLOY_KEY }} publish_branch: gh-pages publish_dir: ./public user_name: ${{ secrets.USERNAME }} user_email: ${{ secrets.EMAILADDRESS }} ================================================ FILE: .gitignore ================================================ ## Core latex/pdflatex auxiliary files: *.aux *.lof *.log *.lot *.fls *.out *.toc *.fmt *.fot *.cb *.cb2 .*.lb ## Intermediate documents: *.dvi *.xdv *-converted-to.* # these rules might exclude image files for figures etc. # *.ps # *.eps # *.pdf ## Generated if empty string is given at "Please type another file name for output:" .pdf ## Bibliography auxiliary files (bibtex/biblatex/biber): *.bbl *.bcf *.blg *-blx.aux *-blx.bib *.run.xml ## Build tool auxiliary files: *.fdb_latexmk *.synctex *.synctex(busy) *.synctex.gz *.synctex.gz(busy) *.pdfsync ## Auxiliary and intermediate files from other packages: # algorithms *.alg *.loa # achemso acs-*.bib # amsthm *.thm # beamer *.nav *.pre *.snm *.vrb # changes *.soc # cprotect *.cpt # elsarticle (documentclass of Elsevier journals) *.spl # endnotes *.ent # fixme *.lox # feynmf/feynmp *.mf *.mp *.t[1-9] *.t[1-9][0-9] *.tfm #(r)(e)ledmac/(r)(e)ledpar *.end *.?end *.[1-9] *.[1-9][0-9] *.[1-9][0-9][0-9] *.[1-9]R *.[1-9][0-9]R *.[1-9][0-9][0-9]R *.eledsec[1-9] *.eledsec[1-9]R *.eledsec[1-9][0-9] *.eledsec[1-9][0-9]R *.eledsec[1-9][0-9][0-9] *.eledsec[1-9][0-9][0-9]R # glossaries *.acn *.acr *.glg *.glo *.gls *.glsdefs # gnuplottex *-gnuplottex-* # gregoriotex *.gaux *.gtex # htlatex *.4ct *.4tc *.idv *.lg *.trc *.xref # hyperref *.brf # knitr *-concordance.tex # TODO Comment the next line if you want to keep your tikz graphics files *.tikz *-tikzDictionary # listings *.lol # makeidx *.idx *.ilg *.ind *.ist # minitoc *.maf *.mlf *.mlt *.mtc[0-9]* *.slf[0-9]* *.slt[0-9]* *.stc[0-9]* # minted _minted* *.pyg # morewrites *.mw # nomencl *.nlg *.nlo *.nls # pax *.pax # pdfpcnotes *.pdfpc # sagetex *.sagetex.sage *.sagetex.py *.sagetex.scmd # scrwfile *.wrt # sympy *.sout *.sympy sympy-plots-for-*.tex/ # pdfcomment *.upa *.upb # pythontex *.pytxcode pythontex-files-*/ # thmtools *.loe # TikZ & PGF *.dpth *.md5 *.auxlock # todonotes *.tdo # easy-todo *.lod # xmpincl *.xmpi # xindy *.xdy # xypic precompiled matrices *.xyc # endfloat *.ttt *.fff # Latexian TSWLatexianTemp* ## Editors: # WinEdt *.bak *.sav # Texpad .texpadtmp # Kile *.backup # KBibTeX *~[0-9]* # auto folder when using emacs and auctex ./auto/* *.el # expex forward references with \gathertags *-tags.tex # standalone packages *.sta # generated if using elsarticle.cls *.spl *.DS_Store ================================================ FILE: LICENSE ================================================ blockchain101 (c) by Taibiao Guo. blockchain101 is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. You should have received a copy of the license along with this work. If not, see . ================================================ FILE: README.md ================================================ # 区块链技术及应用发展(blockchain101) [课程主页镜像|加速国内访问](https://taibiaoguo.gitee.io/blockchain101/) [课程主页](https://taibiaoguo.github.io/blockchain101/) --- 知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 ================================================ FILE: config.toml ================================================ ############################ Default configuration ######################### # baseURL = "https://blockchain101.linkroom.club/blockchain101/" languageCode = "zh-cn" # site title title = "区块链技术及应用发展 | Blockchain 101" # theme theme = "northendlab" # post pagination paginate = "5" # post excerpt summaryLength = "10" # disqus short name disqusShortname = "" # get your shortname form here : https://disqus.com [outputs] home = ["HTML", "AMP", "RSS", "JSON"] ########################## Plugings ###################################### # css plugins [[params.plugins.css]] link = "plugins/bootstrap/bootstrap.min.css" [[params.plugins.css]] link = "plugins/themify-icons/themify-icons.css" # js plugins [[params.plugins.js]] link = "plugins/jQuery/jquery.min.js" [[params.plugins.js]] link = "plugins/bootstrap/bootstrap.min.js" [[params.plugins.js]] link = "plugins/search/fuse.min.js" [[params.plugins.js]] link = "plugins/search/mark.js" [[params.plugins.js]] link = "plugins/search/search.js" ########################### Navigation ################################### # main menu #[[menu.main]] #URL = "contact" #name = "Contact" #weight = 1 # #[[menu.main]] #URL = "tools" #name = "tools" #weight = 2 ######################### Default Parameters ########################### [params] # home home = "Home" # logo logo = "images/logo.svg" # meta data author = "TaibiaoGuo" description = "This is meta description" # google tag manager google_tag_manager = " GTM-M88J7C2" # your id # google analitycs ID google_analitycs_id = "UA-158584793-2" # your id # contact form action contact_form_action = "#" # contact form works with : https://formspree.io # copyright copyright = "© 2020 [TaibiaoGuo](https://www.taibiaoguo.com/about/) All Rights Reserved" # preloader [params.preloader] enable = true preloader = "images/logo.svg" # use png, jpg, svg or gif format # search [params.search] enable = true ####################### banner ####################################### [params.banner] bgImage = "images/banner/banner-bg.svg" title = "区块链应用及技术发展
Blockchain 101" image = "images/banner/illustration.svg" ######################## call to action ############################### [params.cta] enable = true image = "images/hugo-muscot.svg" title = "2019-2020春季学期课程安排" description = "由于疫情,部分课程内容将使用线上MOOC内容代替;大纲为初稿,后续会根据课堂反馈和学生意见进行调整,欢迎指正。" [params.cta.button] enable = true label = "点击查看详情" link = "https://taibiaoguo.gitee.io/blockchain101/2019-2020-spring-class-schedule/" ############################## Social Site ########################## # [[params.social]] # icon = "ti-github" # themify icon pack https://themify.me/themify-icons # link = "https://gitee.com/taibiaoguo/blockchain101" ================================================ FILE: content/2019-2020-01-plan.md ================================================ +++ title = "第1周课程安排" date = 2020-02-16T01:00:00Z description = "2019-2020春季学期第1周课程安排" categories = ["2019-2020春季学期","课程安排"] type = "post" +++ > 文末有彩蛋🥚 >拓展阅读(供学有余力的同学): **Abstract** Blockchain is an emerging decentralized architecture and distributed computing paradigm underlying Bitcoin and other cryptocurrencies, and has recently attracted intensive attention from governments, financial institutions, hightech enterprises, and the capital markets.... > [袁勇, and 王飞跃. "区块链技术发展现状与展望."自动化学报.2016.](http://www.cicpa.org.cn/Column/hyxxhckzl/xxjsyqy/qyjs/201708/W020170802480892964816.pdf) 👈点此阅读 ### 本周课程☠️截止日期☠️ 北京时间 2020年2月23日 23:59:59 ### 本周学习目标 - 了解区块链概念 - 了解区块链的社会意义 - 了解区块链的主要应用场景 ### 学习方式 登陆中国大学MOOC,学习[《区块链技术与应用》](https://www.icourse163.org/course/SWJTU-1207109825) `第一部分 区块链概论` 👈[点我访问](https://www.icourse163.org/course/SWJTU-1207109825) - 第一部分:区块链概论 - 1.1 区块链与智能社会 - 1.2 区块链概念与体系 - 1.3 区块链的哲学意义 - 1.4 区块链的社会学意义 - 1.5 区块链应用综述 ### 作业及提交方式 完成`第一部分 区块链概论`课后习题`区块链概论测验`,在截止日期前通过QQ群的`作业`功能提交课后习题`区块链概论测验`提交后批改页面的完整截图。 ### 彩蛋 每一位同学都将收到阿里半年的公网服务器一台(800RMB,可免费升至1年),来方便各位同学学习本课程和理解区块链知识,最近将发放给大家。 --- 知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 ================================================ FILE: content/2019-2020-02-plan.md ================================================ +++ title = "第2周课程安排" date = 2020-02-25T01:00:00Z description = "2019-2020春季学期第2周课程安排" categories = ["2019-2020春季学期","课程安排"] type = "post" +++ >拓展阅读(供学有余力的同学): **Abstract** Ethereum is an open source, public, blockchain-based distributed computing platform and operating system featuring smart contract (scripting) functionality. It supports a modified version of Nakamoto consensus via transaction-based state transitions..... > [以太坊Wiki](https://github.com/ethereum/wiki/wiki) 👈点此阅读 ### 本周课程截止日期 北京时间 2020年3月1日(周日) 23:59:59 ### 本周学习目标 从区块链的技术特征出发,分别从数字资产、商业模式、经济组织、存证、自动合约、物联网、数据共享与确权等角度分节阐述区块链的应用领域、方法及原理。 ### 学习方式 登陆中国大学MOOC,学习[《区块链技术与应用》](https://www.icourse163.org/course/SWJTU-1207109825?tid=1207475232) `第二部分 区块链的应用` 👉[点我访问](https://www.icourse163.org/course/SWJTU-1207109825?tid=1207475232) - 区块链的应用 - 2.1 资产及其区块链化 - 2.2 商业模式及区块链 - 2.3 区块链与经济组织 - 2.4 区块链存证 - 2.5 自动合约 - 2.6 区块链与物联网 - 2.7 数据共享与数据确权 > 提示:若有同学发现无法学习,请按下图提示,切换至**第一次开课**,进行学习: > > {{< figure src="/blockchain101/images/post/2019-2020-02-plan/swithSection.png" alt="" width="100%" >}} ### 作业及提交方式 完成`第二部分 区块链的应用`课后习题`区块链的应用`,👉[点我访问](https://www.icourse163.org/learn/SWJTU-1207109825?tid=1207475232#/learn/quiz?id=1221314402),在截止日期前通过QQ群的`作业`功能提交课后习题区块链的应用测试答案提交后的**批改页面的完整截图**。 ### 阿里云ECS兑换 现已将阿里云ECS的兑换码通过QQ私信分发给QQ群内的同学,本学期课程实验将通过阿里云ECS进行,请大家课后花时间进行阿里云注册和认证等工作,并启动阿里云ECS的实例(操作系统选择: ubuntu 18.04)。 兑换流程已做成图文教程,有需要的同学请参见 👉[阿里云ECS操作指南]({{< ref "content/2019-2020-others-01.md" >}})。 --- 知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 ================================================ FILE: content/2019-2020-03-plan.md ================================================ +++ title = "第3周课程安排" date = 2020-03-04T01:00:00Z description = "2019-2020春季学期第3周课程安排" categories = ["2019-2020春季学期","课程安排"] type = "post" +++ ### 本周课程截止日期 北京时间 2020年3月11日(下周三) 23:59:59 ### 本周学习目标 本章从区块链的技术架构出发,分节阐述区块链的工作原理,包括分布式帐本与加密帐户、去中心化与P2P通信、共识计算与激励机制、智能合约与去中心化应用等内容。 ### 学习方式 登陆中国大学MOOC,学习[《区块链技术与应用》](https://www.icourse163.org/course/SWJTU-1207109825?tid=1207475232) `第三部分 区块链的技术原理` 👉[点我访问](https://www.icourse163.org/learn/SWJTU-1207109825?tid=1207475232#/learn/content?type=detail&id=1213229096) - 区块链的技术原理 - 3.1 区块链的技术架构 - 3.2 分布式账本与加密帐户 - 3.3 去中心化与P2P通信 - 3.4 共识计算与激励机制 - 3.5 智能合约与去中心化应用 > 提示:若有同学发现无法学习,请按下图提示,切换至**第一次开课**,进行学习: > > {{< figure src="/blockchain101/images/post/2019-2020-02-plan/swithSection.png" alt="" width="100%" >}} ### 作业及提交方式 完成`第三部分 区块链的技术原理`课后习题`区块链的技术原理`,👉[点我访问](https://www.icourse163.org/learn/SWJTU-1207109825?tid=1207475232#/learn/quiz?id=1221338412),在截止日期前通过QQ群的`作业`功能提交课后习题区块链的应用测试答案提交后的**批改页面的完整截图**。 ### 阿里云ECS兑换 现已将阿里云ECS的兑换码通过QQ私信分发给QQ群内的同学,本学期课程实验将通过阿里云ECS进行,请大家课后花时间进行阿里云注册和认证等工作,并启动阿里云ECS的实例(操作系统选择: ubuntu 18.04)。 兑换流程已做成图文教程,有需要的同学请参见 👉[阿里云ECS操作指南]({{< ref "content/2019-2020-others-01.md" >}})。 --- 知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 ================================================ FILE: content/2019-2020-04-plan.md ================================================ +++ title = "第4周课程安排" date = 2020-03-01T01:00:00Z description = "2019-2020春季学期第4周课程安排" categories = ["2019-2020春季学期","课程安排"] type = "post" +++ ### 本周课程截止日期 北京时间 2020年3月18日(下周三) 23:59:59 ### 本周学习目标 本章从区块链的技术架构出发,分节阐述区块链的工作原理,包括分布式帐本与加密帐户、去中心化与P2P通信、共识计算与激励机制、智能合约与去中心化应用等内容。 ### 学习方式 登陆中国大学MOOC,学习[《区块链技术与应用》](https://www.icourse163.org/course/SWJTU-1207109825?tid=1207475232) `第四部分 典型区块链架构` 👉[点我访问](https://www.icourse163.org/learn/SWJTU-1207109825?tid=1207475232#/learn/content?type=detail&id=1213245003) - 典型区块链架构 - 3.1 比特币:开启区块链的江湖 - 3.2 以太坊:夯实区块链的地基 - 3.3 超级账本:互联网巨头们的区块链避难所 > 提示:若有同学发现无法学习,请按下图提示,切换至**第一次开课**,进行学习: > > {{< figure src="/blockchain101/images/post/2019-2020-02-plan/swithSection.png" alt="" width="100%" >}} ### 作业及提交方式 完成`第四部分 典型区块链架构`课后习题`典型区块链架构`,👉[点我访问](https://www.icourse163.org/learn/SWJTU-1207109825?tid=1207475232#/learn/quiz?id=1221331408),在截止日期前通过QQ群的`作业`功能提交课后习题区块链的应用测试答案提交后的**批改页面的完整截图**。 ### 课程通告 下周开始将使用QQ群直播授课,上课时间为每周四晚7点-晚10点,请同学们做好准备,尽快注册阿里云ECS。 无法使用电脑的同学暂时通过手机QQ进行学习,使用阿里云手机APP完成作业。 --- 知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 ================================================ FILE: content/2019-2020-07-ipfs.md ================================================ +++ title = "IPFS实验教程" date = 2020-04-01T01:00:00Z description = "IPFS实验教程" categories = ["Aliyun"] type = "post" +++ 本实验是分布式系统小节的实验,具体内容: * 实验1、启动IPFS节点; * 实验2、熟悉IPFS的界面 * 实验3、上传文件到IPFS节点; * 实验4、从其他节点获取到文件信息; ## 实验1、启动IPFS节点 > 请先确定已经开放了阿里云的端口,否则无法通过浏览器访问你的IPFS节点,开放阿里云服务器端口的方法见[课程主页对应的文章](https://taibiaoguo.github.io/blockchain101/2019-2020-tools-aliyun-ports/)。 复制下面的命令到服务器的终端执行: ``` /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/TaibiaoGuo/blockchain101/experiment/ipfs/start.sh)" ``` ## 实验2、熟悉IPFS界面 完成实验1后,通过浏览器可以访问你的IPFS节点的网页端界面,地址为`http://你的公网IP:5001/webui` 熟悉一下所有的功能 ## 实验3、上传文件到IPFS节点 在你的IPFS节点网页端,即`http://你的公网IP:5001/webui` 点击菜单中的`文件`,会出现文件界面,点击界面的`添加`,选择一个本机的文件上传到IPFS网络中 > 注意:IPFS是公开网络,请不要上传私密内容 稍等片刻,在文件界面就可以看到你的文件了 ## 实验4、从其他节点获取到文件信息 在你的IPFS节点网页端,即`http://你的公网IP:5001/webui` 最上方的输入框中输入任意一个文件哈希,就会通过IPFS网络请求文件,如果是视频、图片、文字等可以在线预览的文件类型,就可以直接在网页端观看,其他类型的文件需要下载到本地。 但是,这个功能因为众所周知的网络原因很大概率(80%)用不了。 ## 其他 实验完成后,你可以选择删除ipfs容器,在服务器终端执行下面的命令: ``` docker rm -f ipfs ``` --- 知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 ================================================ FILE: content/2019-2020-others-01.md ================================================ +++ title = "阿里云ECS开通教程" date = 2020-02-26T01:00:00Z description = "2019-2020春季学期阿里云ECS开通教程" categories = ["2019-2020春季学期","课程工具"] type = "post" +++ ## 总览 课程使用了Linux发行版本 `Ubuntu 18.04` 作为课程的标准实验环境。 如果你选修了湖南工商大学区块链X课程,那么你将领取到一台2核4GB的阿里云ECS实例,请参照`在阿里云上部署标准实验环境`进行操作,如果你未选修本门课程,请参照`在个人PC上部署标准实验环境`进行操作。 ## 在阿里云上部署标准实验环境 #### 1. 兑换ECS实例 a. 访问阿里云兑换页面,输入`兑换码`,点击立即领取,获取ECS实例。 > 如果之前未使用过阿里云,则还需要完成学生认证等步骤。因为安全问题,兑换流程不在此公布。 {{< figure src="/blockchain101/images/post/2019-2020-02-others-01/alicloudGetECS.png" alt="" width="100%" >}} b. 在ECS实例领取过程中,将ECS实例的操作系统从默认的`Centos 7.4 64位` 修改为我们需要的 `Ubuntu 18.04`版本,其他选项保持默认即可。 > 若选错操作系统,后续可以在`控制台`随时更改。 {{< figure src="/blockchain101/images/post/2019-2020-02-others-01/alicloudSwitchOS.png" alt="" width="100%" >}} c. 支付(0元)完成后,会显示“恭喜,支付成功!”,点击`管理控制台`界面会跳转到ECS实例的控制台界面。 控制界面中,可以看到服务器的公网IP及运行状态等关键信息,点击相应按钮,还可以查看CPU、网络等负载情况。有兴趣的同学请自行查阅阿里云的帮助文档。 {{< figure src="/blockchain101/images/post/2019-2020-02-others-01/alicloudECSPannel.png" alt="" width="100%" >}} #### 2. 重置密码 a. 为了登陆ECS实例,我们需要重置ECS初始密码,此部分操作细节请参见阿里云帮助文档[重置密码](https://help.aliyun.com/document_detail/25439.html)部分。 > 重置密码首先需要**停止**ECS实例。 {{< figure src="/blockchain101/images/post/2019-2020-02-others-01/alicloudChangePassword.png" alt="" width="100%" >}} b. 重置密码并启动ECS实例后,就可以通过远程桌面工具`VNC`或者安全终端工具`SSH`等访问ECS实例了。 #### 3. 登陆ECS实例 a. 在`管理控制台`,实例处选择`远程连接`的`Workbench` {{< figure src="/blockchain101/images/post/2019-2020-02-others-01/alicloudRemoteLogin.png" alt="" width="100%" >}} b. 在`workbench`中输入用户名`root`及密码,其他默认,即可通过`SSH`的方式登陆阿里云ECS实例中。 {{< figure src="/blockchain101/images/post/2019-2020-02-others-01/alicloudSSH.png" alt="" width="100%" >}} {{< figure src="/blockchain101/images/post/2019-2020-02-others-01/alicloudSSH2.png" alt="" width="100%" >}} > 实际生产过程中,很少使用网页版SSH登陆服务器,多采用终端程序`SSH`或者SSH管理程序(如`XShell`)等登陆服务器,并使用密钥代替密码。如有兴趣,请下载对应软件对服务器进行管理。本课程收集了部分软件,见[SSH](https://github.com/TaibiaoGuo/blockchain101/wiki/_ssh)部分。 ## 在个人PC上部署标准实验环境 - 所需软件: - `VirtualBox V6.1` - `Ubuntu 18.04镜像` - `XShell V5` - 个人PC最低配置: - 操作系统 `64位操作系统` - 硬盘剩余容量 `>=20GB` - 内存大小 `>=4GB` - 处理器 `>=2逻辑核心` ================================================ FILE: content/2019-2020-spring-class-schedule.md ================================================ +++ title = "2019-2020春季学期课程安排" date = 2020-02-15T01:00:00Z description = "2019-2020春季学期课程安排" categories = ["2019-2020春季学期"] type = "post" +++ > 推荐阅读:[Gartner 2019 Hype Cycle Shows Most Blockchain Technologies Are Still Five to 10 Years Away From Transformational Impact](https://www.gartner.com/en/newsroom/press-releases/2019-10-08-gartner-2019-hype-cycle-shows-most-blockchain-technologies-are-still-five-to-10-years-away-from-transformational-impact) > > “Blockchain technologies have not yet lived up to the hype and most enterprise blockchain projects are stuck in experimentation mode,” said Avivah Litan, distinguished analyst and research vice president at Gartner... ### 课程内容 区块链是面向未来数字化社会的新一代信息技术。习近平总书记在中央政治局第十八次集体学习时将区块链定义为“我国自主创新的重要突破口”。 本课程将系统介绍区块链原理和应用,让学生对区块链有整体的了解。 课程设计目标是帮助学生树立分布式整体性世界观,教学大纲将涵盖围绕区块链,通过应用密码学、分布式系统基础、博弈论的基础知识,把区块链作为分布式整体世界观最前沿的创新应用进行系统讲解。课程还将引入区块链智能合约的概念,帮助学生理解区块链编程的理念和应用的方法。 | 周 | 教学形式 | 授课主题 | 课时标题 | | --- | --- | --- | --- | | 1 | 面授 | 简介 | 《区块链应用场景和前景》 | | 1| 面授|简介|《区块链发展方向和著名成果简述》 | | 2 | 面授 | 博弈论基础 | 《谁在推动区块链系统运行》 | | 2| 面授| 监管合规 | 《如何"一夜暴富"》 | | 3 | 面授 | 密码学基础 | 《非对称加密、Hash、Merkle树和区块的概念》 | |3 |实验 | 密码学基础|《实验:openssl、区块生成》 | | 4 | 面授 | 分布式基础 | 《P2P网络原理和应用》 | |4 |实验 |分布式基础| 《实验:DHT网络》 | | 5 | 面授 | 分布式基础|《分布式共识算法概述》 | |5 |实验 |分布式基础| 《实验:共识算法》 | | 6 | 面授 | 区块链系统 | 《以太坊及其系统架构设计简述》 | |6 |实验|区块链系统 | 《实验:以太坊联盟链部署》 | | 7 | 面授 | 智能合约 | 《以太坊智能合约原理及语法1》 | | 7|面授|智能合约|《以太坊智能合约语法2》 | | 8 | 实验 |智能合约 |《实验:以太坊智能合约开发IDE介绍》 | |8 |实验|智能合约|《实验:以太坊智能合约部署和调用》 | | 9 | 实验 | 应用开发 | 《实验:博客框架部署及使用》 | | 9|实验|应用开发|《实验:部署自己的博客系统》 | | 10 |实验|应用开发| 《实验:编写数字积分打赏合约》 | | 10|实验|应用开发|《实验:区块链浏览器使用介绍》 | | 11 | 实验|应用开发|《实验:制作一个数字积分打赏插件》 | | 11| 实验|应用开发|《实验:将付费阅读博客部署到公有云平台》 | | 12 | 其他 | 结课答疑 | 结课答疑 | ### 学分与成绩标准 本课程学分2分,课程总分为100分,具体如下: - 平时成绩44分: - 课堂考勤20分。考勤抽查,一次未到扣5分,最多扣20分; - 课后作业24分。按作业要求,在每次作业截止时间前提交有效,共12次,一次作业2分; - 课堂讨论26分。在12周课程结束前,通过`课堂讨论区`([点我进入](https://github.com/TaibiaoGuo/blockchain101/issues))的`Issues`面板提出问题或回复其他人的问题均可得分,禁止灌水,本环节稍后将提供简易指南。其中,每提出一个有效问题3分,最多9分;每产生一个有效回复3分,最多15分;关注一波不迷路,关注(Star)本课程对应Github项目`blockchain101`2分[点我直达](https://github.com/TaibiaoGuo/blockchain101/)。为方便统计,提问和回答必须在正文末尾新起一行附上**名字最后一位 学号后三位**,如:`婷019`才算有效。课堂讨论溢出得分最多可抵扣5分课堂考勤扣分🚀; - 结课成果30分。可自由通过成果展示、结课论文、PPT展示等多种方式完成结课成果,老师将根据成果水平进行评分。 ### 开课时间及讲师 讲师:郭泰彪 开课时间: 2019-2020 下学期 1-12周 周四晚 办公室: 科技楼205办公室 办公时间: 周一至周五 9:00 - 11:30 3:00 - 5:00 ### 课程形式 该课程的学习包括: * 阅读和评论:对于每周的课程,我们都会为您事先安排阅读任务。您应该在上课前一天完成阅读并评论材料; * 小组形式: 本课程老师与学生在课堂会积极互动,各位可以在课堂上积极提出关键的概念,想法和直觉,并共同处理困难的资料; * 习题集: 每周的课程将会有5道习题,每周习题会在附在课程资料中,习题需要在每周日12:00前通过中国大学MOOC发送给老师。 ### 课程目标 在课程结束时,希望大家都能: * 可以向其他人解释区块链的概念和应用场景; * 熟悉区块链的现状和未来发展方向; * 拥有一个基于区块链的个人博客系统; * 能够利用搜索引擎、学术论文、博客、论坛等途径对区块链进行深入学习。 ### 提问方式 如果您在本课程学习过程中有任何不明白的地方,可以通过课程QQ群、中国大学MOOC讨论区、Github Issue的方式进行提问,鼓励使用Github Issue的方式进行提问。 ### 教材 本课程采用我校陈晓红院士编写的《区块链应用及技术发展》(清华大学出版社)作为主要教材,并辅以相关电子资料。当您在学习时,请不吝提出更正和修改建议! 您可能还需要了解以下参考书籍,这些书籍都可以在网上商城购买和本校图书馆借阅: 熊丽兵 《精通以太坊智能合约开发》 电子工业出版社 ISBN:9787121349515 ### 课程赞助商 湖南高校区块链实验室;阿里云;中国大学MOOC --- 知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 ================================================ FILE: content/2019-2020-tools-aliyun-ports.md ================================================ +++ title = "阿里云开放端口教程" date = 2020-04-01T01:00:00Z description = "阿里云开放端口教程" categories = ["Aliyun","IPFS"] type = "post" +++ 本指南用于在开放阿里云服务器的端口,以供其他用户访问。 因为安全策略,大部分端口默认是无法通过服务器的公网IP进行访问的,本实验课需要使用外网端口,因此需要同学们按照下面的设置打开你的外网端口。 访问地址 https://ecs.console.aliyun.com/ 进入阿里云ECS的控制台。在菜单找到`本实例安全组` {{< figure src="/blockchain101/images/post/2019-2020-tools-aliyun-ports/01.png" alt="" width="100%" >}} 点击`本实例安全组`,点击右侧的`配置规则` {{< figure src="/blockchain101/images/post/2019-2020-tools-aliyun-ports/02.png" alt="" width="100%" >}} 点击`本实例安全组`,点击右侧的`配置规则` {{< figure src="/blockchain101/images/post/2019-2020-tools-aliyun-ports/03.png" alt="" width="100%" >}} 在跳转的新页面点击`添加安全组规则`,在弹框内输入以下配置: {{< figure src="/blockchain101/images/post/2019-2020-tools-aliyun-ports/04.png" alt="" width="100%" >}} 文字版本参考: ``` 规则方向:入网方向 授权策略:允许 协议类型:自定义TCP 端口范围:1/20000 优先级:1 授权类型:IPV4类型地址访问 授权对象:0.0.0.0/0 ``` 输入完成后,点击`确认`即完成设置。 --- 知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 ================================================ FILE: content/2019-2020-tools-docker.md ================================================ +++ title = "Docker使用帮助" date = 2020-03-12T01:00:00Z description = "Docker使用帮助" categories = ["Docker"] type = "post" +++ 在本课程的实验课程代码和工具都使用docker进行了打包,以方便学习和复现。 #### 名词解释 本文中出现的你可能不理解的名词的简单说明 | 名词 | 解释 | | --- | --- | | docker | 为我们课堂提供可重复实验的统一环境的一个软件 | | 容器 | 类似于虚拟机的虚拟化技术 | | 镜像 | 打包好的容器 | | 镜像仓库 | 存放制作好的镜像的服务 | | 仓库镜像 | 镜像仓库的镜像可以加速镜像的下载速度 | ### docker命令备忘 下面列表中的命令囊括了你在课程中所需的所有命令: ``` docker pull [容器名] # 从仓库拉取一个容器 docker run [镜像名称] # 启动容器 docker ps # 列出正在运行的容器 docker ps -a # 列出所有容器(包含已停止的) docker stop [容器ID] # 停止一个容器 docker rm [容器ID] # 删除一个容器(需要先停止容器) docker images # 列出所有镜像 docker login [账号] [仓库] # 登陆阿里云镜像仓库 ``` ### docker按照方法 请访问 [Docker安装指南]({{< ref "content/2019-2020-tools-install-docker.md" >}})。 --- 知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 ================================================ FILE: content/2019-2020-tools-install-docker.md ================================================ +++ title = "Docker安装指南" date = 2020-03-17T01:00:00Z description = "Docker安装指南" categories = ["Docker"] type = "post" +++ 本指南用于在阿里云服务器上安装Docker > 判断是否成功安装docker的方法,在SSH中输入下面的命令 > 并按`回车`或`return`执行命令,如果出现`blockchain 101`的字符画(手机显示可能会错位),则表示docker安装成功。若未成功,则根据你使用的设备,按照 `一、PC端安装步骤总览` 或 `二、手机端安装步骤总览` 中任意一个来完成docker的安装。 ``` docker run --rm registry.cn-shenzhen.aliyuncs.com/blockchain101/hello_blockchain ``` ### 一、PC端安装步骤总览 > 手机端和网页端访问的是同一台服务器,两种安装方式只需要按照流程执行一种即可。 #### 1、安装前检查清单 已经兑换了阿里云服务器 #### 2、重装阿里云服务器操作系统 > 为了避免不必要的错误,因此这里直接让大家重装阿里云的操作系统 **2.1 登陆阿里云官网** 访问阿里云官方网站 https://www.aliyun.com/ 并登陆阿里云官网 {{< figure src="/blockchain101/images/post/2019-2020-tools-install-docker/2-1-1.png" alt="" width="100%" >}} {{< figure src="/blockchain101/images/post/2019-2020-tools-install-docker/2-1-2.png" alt="" width="100%" >}} **2.2 进入阿里云控制面板** 点击`控制台`进入控制台页面 {{< figure src="/blockchain101/images/post/2019-2020-tools-install-docker/2-2-1.png" alt="" width="100%" >}} 在控制台页面的`已开通的云产品`中找到`云服务器ECS`,点击进入云服务器页面 {{< figure src="/blockchain101/images/post/2019-2020-tools-install-docker/2-2-2.png" alt="" width="100%" >}} 在云服务器页面中找到`实例ID`列表,点击你的实例的ID进入云服务器的实例详情页 {{< figure src="/blockchain101/images/post/2019-2020-tools-install-docker/2-2-3.png" alt="" width="100%" >}} **2.3 停止实例** 在实例详情页面中找到`停止`按钮,点击 {{< figure src="/blockchain101/images/post/2019-2020-tools-install-docker/2-3-1.png" alt="" width="100%" >}} 在弹出的选择框中分别选择`强制停止`、`确定要强制停止`、`确定` {{< figure src="/blockchain101/images/post/2019-2020-tools-install-docker/2-3-2.png" alt="" width="100%" >}} 等待实例停止 **2.4 更换操作系统** 实例停止后,找到实例详情页面中的`配置信息`,点击,在下拉列表中点击`更换操作系统` {{< figure src="/blockchain101/images/post/2019-2020-tools-install-docker/2-4-1.png" alt="" width="100%" >}} 在弹框中选择 `确定,更换操作系统` {{< figure src="/blockchain101/images/post/2019-2020-tools-install-docker/2-4-2.png" alt="" width="100%" >}} 在新的页面中在`公共镜像`下拉菜单中选择`Ubuntu`和`18.04 64位` 在`安全设置`中选择`自定义密码` 在`登陆密码`设置一个服务器密码 点击`确认` 在弹出框中获取`手机验证码`、输入得到的手机验证码、`确认` {{< figure src="/blockchain101/images/post/2019-2020-tools-install-docker/2-4-3.png" alt="" width="100%" >}} 在弹出的框中选择`返回实例列表`并等待服务器启动完成 {{< figure src="/blockchain101/images/post/2019-2020-tools-install-docker/2-4-5.png" alt="" width="100%" >}} #### 3、通过网页版SSH连接服务器 在服务器自动启动完成后,在`实例列表`中选择你的服务器的`远程连接` **3.1 远程连接服务器** {{< figure src="/blockchain101/images/post/2019-2020-tools-install-docker/3-1-1.png" alt="" width="100%" >}} 确定`连接协议`是`SSH` 在`用户名`处输入`root` 在`密码`处输入你在步骤`2.4`设置的密码 点击 `确定` {{< figure src="/blockchain101/images/post/2019-2020-tools-install-docker/3-1-2.png" alt="" width="100%" >}} #### 4、执行安装docker命令 **4.1 执行安装docker命令** 粘贴下面的命令到SSH中,按回车键执行 > 网页版中可以使用组合键 `ctrl`+`v`进行粘贴 ``` curl -sSL https://get.daocloud.io/docker -o d.sh && chmod +x d.sh && ./d.sh --mirror Aliyun && rm d.sh ``` {{< figure src="/blockchain101/images/post/2019-2020-tools-install-docker/4-1-1.png" alt="" width="100%" >}} **4.2 等待命令执行完毕** 命令执行时间大约为2-5分钟,当出现如图所示的标志时表示命令执行结束了 > 如果命令长时间不结束,则可能是你的安装命令输入错误了,按组合键`ctrl`+`c`终止命令的执行 {{< figure src="/blockchain101/images/post/2019-2020-tools-install-docker/4-1-2.png" alt="" width="100%" >}} #### 5、检查Docker是否安装成功 **5.1 执行测试命令** 粘贴下面的命令到SSH中,按回车键执行 > 网页版中可以使用组合键 `ctrl`+`v`进行粘贴 ``` docker run --rm registry.cn-shenzhen.aliyuncs.com/blockchain101/hello_blockchain ``` {{< figure src="/blockchain101/images/post/2019-2020-tools-install-docker/4-2-1.png" alt="" width="100%" >}} **5.2 通过运行结果判断是否成功** 运行成功时,会出现blockchain 101 的字符画,否则表示安装失败 若安装失败,关闭所有网页,重新打开,从步骤`1.1`重新走整个流程 若多次安装失败,请联系老师。 {{< figure src="/blockchain101/images/post/2019-2020-tools-install-docker/4-2-2.png" alt="" width="100%" >}} #### 6、关闭网页 `5.2`成功后,即可关闭网页离开。 > docker安装完成后无需在每次访问服务器时执行 `4.1 docker安装`,只需要安装一次,除非docker损坏(可通过`5.1`进行判断)。 > > 手机端和网页端访问的是同一台服务器,两种安装方式只需要按照流程执行一种即可。 ### 二、手机端安装步骤总览 > 手机端和网页端访问的是同一台服务器,两种安装方式只需要按照流程执行一种即可。 #### 1、安装前检查清单 - 已经兑换了阿里云服务器 - 手机下载了阿里云APP - 手机下载了支付宝APP - 使用手机自带的浏览器打开本页面(不要使用QQ内置浏览器等打开本页面,因为QQ屏蔽了支付宝) #### 2、访问阿里云官网和登陆 **2.1 访问阿里云官网** 粘贴下面的网址到手机浏览器地址栏访问阿里云ECS服务器控制台,进行阿里云的登陆界面 ``` https://ecs.console.aliyun.com/#/home ``` {{< figure src="/blockchain101/images/post/2019-2020-tools-install-docker/IMG_3723.png" alt="" width="100%" >}} {{< figure src="/blockchain101/images/post/2019-2020-tools-install-docker/IMG_3724.png" alt="" width="100%" >}} **2.2 使用支付宝登陆阿里云** 在支付宝中`确认登陆`后,支付宝会跳转到`云服务器管理控制台` {{< figure src="/blockchain101/images/post/2019-2020-tools-install-docker/IMG_3725.png" alt="" width="100%" >}} #### 3、重装阿里云服务器操作系统 在支付宝跳转的`云服务器管理控制台`中执行`一、PC端安装步骤总览`的步骤`2.3 停止实例` 和 `2.4 更换操作系统` 执行完后就可以关闭支付宝了 #### 4、访问服务器 **4.1 打开阿里云APP** 打开阿里云APP,切换到`产品控制台` {{< figure src="/blockchain101/images/post/2019-2020-tools-install-docker/IMG_3726.png" alt="" width="100%" >}} {{< figure src="/blockchain101/images/post/2019-2020-tools-install-docker/IMG_3727.png" alt="" width="100%" >}} **4.2 删除之前的SSH连接** 将之前的SSH配置删除,如果没有请直接跳到步骤`4.3` {{< figure src="/blockchain101/images/post/2019-2020-tools-install-docker/IMG_3734.png" alt="" width="100%" >}} {{< figure src="/blockchain101/images/post/2019-2020-tools-install-docker/IMG_3735.png" alt="" width="100%" >}} {{< figure src="/blockchain101/images/post/2019-2020-tools-install-docker/IMG_3736.png" alt="" width="100%" >}} **4.3 打开SSH工具** 依次点击右上方`+`、`从我的ECS中选择` {{< figure src="/blockchain101/images/post/2019-2020-tools-install-docker/IMG_3728.png" alt="" width="100%" >}} 点击列表以弹出下拉框 {{< figure src="/blockchain101/images/post/2019-2020-tools-install-docker/IMG_3729.png" alt="" width="100%" >}} 根据你主机所在的地域在地域列表里寻找一下主机(比如截图中在深圳) {{< figure src="/blockchain101/images/post/2019-2020-tools-install-docker/IMG_3730.png" alt="" width="100%" >}} 找到后,`选中主机`并点击`确定` {{< figure src="/blockchain101/images/post/2019-2020-tools-install-docker/IMG_3731.png" alt="" width="100%" >}} **4.4 添加主机并连接** 在`登陆名`处输入`root`,在`密码`处输入之前步骤设置的密码,点击`确认连接` {{< figure src="/blockchain101/images/post/2019-2020-tools-install-docker/IMG_3732.png" alt="" width="100%" >}} {{< figure src="/blockchain101/images/post/2019-2020-tools-install-docker/IMG_3733.png" alt="" width="100%" >}} #### 5、执行安装命令 **5.1 执行安装命令** 连上服务器后,复制下面的命令,`粘贴`到SSH中,按`换行`键或`return`键执行 ``` curl -sSL https://get.daocloud.io/docker -o d.sh && chmod +x d.sh && ./d.sh --mirror Aliyun && rm d.sh ``` {{< figure src="/blockchain101/images/post/2019-2020-tools-install-docker/IMG_3737.png" alt="" width="100%" >}} 执行完成后,重新出现类似`root@sdhkshdfksh:~#`的输出,表示可以继续执行下一行命令 {{< figure src="/blockchain101/images/post/2019-2020-tools-install-docker/IMG_3738.png" alt="" width="100%" >}} **5.2 等待命令执行完毕** 命令执行时间大约为2-5分钟,当出现如图所示的标志时表示命令执行结束了 > 如果命令长时间(5分钟以上)不结束,则可能是你的安装命令输入错误了,按组合键`ctrl`+`c`终止命令的执行(先按`ctrl`,然后按`c`即可) #### 6、执行测试命令 **6.1 执行命令** 复制下面的命令,`粘贴`到SSH中,按`换行`键或`return`键执行,时间大概5-10s ``` docker run --rm registry.cn-shenzhen.aliyuncs.com/blockchain101/hello_blockchain ``` **6.2 执行成功的截图** 如果执行成功,显示blockchain101(手机端因为屏幕过窄因此可能显示得很乱) {{< figure src="/blockchain101/images/post/2019-2020-tools-install-docker/IMG_3739.png" alt="" width="100%" >}} {{< figure src="/blockchain101/images/post/2019-2020-tools-install-docker/IMG_3740.png" alt="" width="100%" >}} #### 7、退出阿里云APP 成功后,直接退出阿里云APP即可。 ### 三、可选(不执行不影响本课程学习) 因为众所周知的网络原因,我在从 hub.docker.com 中拉取镜像时常会因为网络故障出现失败,这时我们需要为docker添加仓库镜像,分别复制以下命令到终端并按回车执行: ``` sudo mkdir -p /etc/docker ``` ``` sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": [ "https://dockerhub.azk8s.cn", "https://hub-mirror.c.163.com" ] } EOF ``` ``` sudo systemctl daemon-reload ``` ``` sudo systemctl restart docker ``` --- 知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 ================================================ FILE: content/contact/_index.md ================================================ --- title: "Contact Us" draft: false description : "this is meta description" image: "images/contact.svg" --- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labor. ================================================ FILE: content/search/_index.md ================================================ --- title: "Search Result" draft: false description : "this is meta description" --- ================================================ FILE: content/tools/_index.md ================================================ --- title: "Tools" draft: false description : "this is meta description" --- ================================================ FILE: data/tools.yml ================================================ tools: # tool category - title: Dev Tools tool: # tool loop in tool category - name: Git image: "/images/tools/Git.png" link: https://git-scm.com/ # tool loop in tool category - name: Atom image: "/images/tools/Atom.png" link: https://atom.io/ # tool loop in tool category - name: Notepad ++ image: "/images/tools/Notepad.png" link: https://notepad-plus-plus.org/ # tool loop in tool category - name: Sublime Text image: "/images/tools/sublime.png" link: https://www.sublimetext.com/ # tool loop in tool category - name: Visual Studio Code image: "/images/tools/vs-code.png" link: https://code.visualstudio.com/ # tool category - title: Design Tools tool: # tool loop in tool category - name: Sketch image: "/images/tools/sketch.png" link: https://www.sketch.com/ # tool loop in tool category - name: Adobe Illustrator image: "/images/tools/illustrator.png" link: https://www.adobe.com/products/illustrator.html # tool loop in tool category - name: Invision image: "/images/tools/invision.png" link: https://www.invisionapp.com/studio # tool loop in tool category - name: Adobe XD image: "/images/tools/xd.png" link: https://www.adobe.com/products/xd.html # tool loop in tool category - name: Figma image: "/images/tools/figma.png" link: https://www.figma.com/ # tool category - title: Digital Marketing Tools tool: # tool loop in tool category - name: Mailchimp image: "/images/tools/MailChimp.jpg" link: https://mailchimp.com/ # tool loop in tool category - name: Buffer image: "/images/tools/Buffer.jpg" link: https://buffer.com/ # tool loop in tool category - name: Bitly Link image: "/images/tools/Bitly.jpg" link: https://bitly.com/ # tool loop in tool category - name: Hotjar image: "/images/tools/Hotjar.jpg" link: https://www.hotjar.com/ # tool loop in tool category - name: Ahrefs image: "/images/tools/Ahrefs.jpg" link: https://ahrefs.com/ # tool loop in tool category - name: Google Trends image: "/images/tools/GoogleTrends.jpg" link: https://trends.google.com/trends/ # tool loop in tool category - name: Google Analytics image: "/images/tools/Google-Analytics.jpg" link: https://analytics.google.com/analytics/web ================================================ FILE: resources/_gen/assets/scss/scss/style.scss_b95b077eb505d5c0aff8055eaced30ad.content ================================================ /*!------------------------------------------------------------------ [MAIN STYLESHEET] PROJECT: Project Name VERSION: Versoin Number -------------------------------------------------------------------*/@import "https://fonts.googleapis.com/css?family=Muli:300,400,600,700&display=swap";body{line-height:1.5;font-family:muli,sans-serif;-webkit-font-smoothing:antialiased;font-size:15px;color:#666}p,.paragraph{font-weight:400;color:#666;font-size:18px;line-height:1.7;font-family:muli,sans-serif}a{color:#e8505b}a:hover{color:#e8505b}h1,h2,h3,h4,h5,h6{color:#222;font-family:muli,sans-serif;font-weight:600;line-height:1.2}h1 a:hover,h2 a:hover,h3 a:hover,h4 a:hover,h5 a:hover,h6 a:hover{text-decoration:none}h1,.h1{font-size:50px}h2,.h2{font-size:40px}h3,.h3{font-size:30px}h4,.h4{font-size:26px}h5,.h5{font-size:20px}h6,.h6{font-size:16px}.btn{font-size:16px;font-family:muli,sans-serif;text-transform:capitalize;padding:12px 20px;border-radius:5px;border:1px solid;position:relative;z-index:1;transition:.2s ease}.btn:hover,.btn:active,.btn:focus{outline:0;box-shadow:none!important}.btn-sm{font-size:15px;padding:6px 10px}.btn-primary{background:#e8505b;color:#fff;border-color:#e8505b}.btn-primary:active,.btn-primary:hover,.btn-primary.focus,.btn-primary.active{background:#e8505b!important;border-color:#e8505b!important}.btn-outline-primary{background:0 0;color:#e8505b;border-color:#e8505b}.btn-outline-primary:active,.btn-outline-primary:hover,.btn-outline-primary.focus,.btn-outline-primary.active{background:#e8505b!important;border-color:#e8505b!important;color:#fff}.btn-transparent{background:0 0;color:#e8505b;border:0;border-bottom:1px solid #e8505b;border-radius:0;padding:2px}.btn-transparent:active,.btn-transparent:hover,.btn-transparent.focus,.btn-transparent.active{background:0 0}body{background-color:#fff;overflow-x:hidden}::selection{background:#ee7d85;color:#fff}.preloader{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#fff;z-index:9999;display:flex;align-items:center;justify-content:center}img{vertical-align:middle;border:0}a,button,select{cursor:pointer;transition:.2s ease}a:focus,button:focus,select:focus{outline:0}.slick-slide{outline:0}.section{padding-top:80px;padding-bottom:80px}.bg-cover{background-size:cover;background-position:50%;background-repeat:no-repeat}.border-primary{border-color:#acb9c4!important}.overlay{position:relative}.overlay::before{position:absolute;content:'';height:100%;width:100%;top:0;left:0;background:#000;opacity:.5}.outline-0{outline:0!important}.d-unset{display:unset!important}.bg-primary{background:#e8505b!important}.bg-secondary{background:#9ac4f8!important}.bg-light{background:#f8f8f8!important}.text-primary{color:#e8505b!important}a.text-primary:hover{color:#e8505b!important}.text-color{color:#666}.mb-10{margin-bottom:10px!important}.mb-20{margin-bottom:20px!important}.mb-30{margin-bottom:30px!important}.mb-40{margin-bottom:40px!important}.mb-50{margin-bottom:50px!important}.mb-60{margin-bottom:60px!important}.mb-70{margin-bottom:70px!important}.mb-80{margin-bottom:80px!important}.mb-90{margin-bottom:90px!important}.mb-100{margin-bottom:100px!important}.zindex-1{z-index:1}.overflow-hidden{overflow:hidden}.shadow,.nav-tab .nav-link.active{box-shadow:0 10px 30px 0 rgba(68,74,102,.1)!important}.form-control{height:50px;line-height:50px}.form-control:focus{outline:0;box-shadow:none;border-color:#e8505b}textarea.form-control{height:150px}.page-link:focus{box-shadow:none}.navigation{transition:.3s ease}@media(max-width:991px){.navigation.fixed-top{position:sticky!important}}@media(max-width:991px){.navigation{background:#fff}}.nav-bg{background-color:#fff;box-shadow:0 0 10px rgba(0,0,0,.161)}.nav-item{margin:0}.nav-item .nav-link{text-transform:capitalize}.navbar-light .navbar-nav .nav-link{color:#222}.navbar-light .navbar-nav .nav-link:hover{color:#e8505b}.navbar-expand-lg .navbar-nav .nav-link{padding:20px}.search-btn{border:0;background:0 0}.search-wrapper{position:absolute;top:0;left:0;right:0;height:100%;z-index:2;visibility:hidden;transition:.2s ease;opacity:0}.search-wrapper.open{visibility:visible;opacity:1}.search-box{height:100%;width:100%;border:0;background:#fff;font-size:20px;padding:0}.search-box:focus{box-shadow:none!important;outline:0}.search-close{position:absolute;right:5px;top:50%;transform:translateY(-50%);border:0;background:0 0;page-break-after:10px;font-size:20px}.banner{padding:220px 0 120px;position:relative}@media(max-width:1200px){.banner{padding:150px 0 100px}}@media(max-width:991px){.banner{padding:100px 0 0}}.banner .illustration{position:absolute;bottom:0;right:30px}@media(max-width:1600px){.banner .illustration{max-width:600px}}@media(max-width:991px){.banner .illustration{display:none}}.banner .illustration-mobile{display:none}@media(max-width:991px){.banner .illustration-mobile{display:block}}.block{padding:60px 60px 40px}.author-thumb{height:300px;width:300px;object-fit:cover}.pagination{justify-content:center}.pagination .page-item .page-link{display:inline-block;width:40px;height:40px;text-align:center;color:#666;border:0;border-radius:5px}.pagination .page-item .page-link:hover{background:#e8505b;color:#fff}.pagination .page-item.active .page-link{background:#e8505b;color:#fff}.post-title:hover{text-decoration:underline}.post-meta{color:#999}.post-meta a{color:inherit}.post-meta a:hover{color:#e8505b}.content *{margin-bottom:20px}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{margin-bottom:10px}.content ol{padding-left:20px}.content ul{padding-left:0}.content ul li{position:relative;padding-left:20px;margin-bottom:15px;list-style-type:none}.content ul li::before{position:absolute;content:"\e71b";font-family:themify;font-size:14px;left:0;top:1px;color:#e8505b;transition:.3s ease}.content table{text-align:left;width:100%;max-width:100%;margin-bottom:1rem;border:1px solid #dee2e6}.content table th,.content table td{padding:.75rem;vertical-align:top;border:1px solid #dee2e6}.content table thead{background:#f3f3f3}.content table tbody{background:#f8f8f8}.content table tbody td{text-align:left!important}.content blockquote{padding:20px;background:#f8f8f8;border-left:3px solid #e8505b}.content blockquote p{margin-bottom:0;color:#222;font-style:italic!important}.content pre{padding:10px 20px;background:#f8f8f8}.content pre code{border:0;background:0 0;padding:0}.content a{color:#e8505b}.content a:hover{text-decoration:underline}.content code{padding:3px 5px;background:#f8f8f8;border:1px solid #acb9c4;border-radius:3px;color:#222}.social-icon a{height:45px;width:45px;border:1px solid #e8505b;border-radius:50%;line-height:45px;text-align:center;display:block;color:#e8505b}.social-icon a:hover{background:#e8505b;color:#fff}.nav-tab .nav-link{padding:15px;color:#666;border-radius:5px}.nav-tab .nav-link.active{color:#fff;background:#e8505b} ================================================ FILE: resources/_gen/assets/scss/scss/style.scss_b95b077eb505d5c0aff8055eaced30ad.json ================================================ {"Target":"scss/style.min.css","MediaType":"text/css","Data":{}} ================================================ FILE: themes/northendlab/LICENSE ================================================ The MIT License (MIT) Copyright (c) 2019 gethugothemes.com 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: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 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. ================================================ FILE: themes/northendlab/README.md ================================================ # Easy Setup (Hugo + Netlify + Forestry) Build your website with northendlab hugo theme by following this easy steps (No Coding Required) In this tutorial we will show you to make your website live without buying any hosting and touching a single line of code. We made this tutorial based on [meghna hugo](https://github.com/themefisher/meghna-hugo) but you can setup everithing like this. ### What you need !! 1. Git acccount (Ex: Github, Gitlab etc ) . In our case we use github. 2. [Netlify](https://bit.ly/netlify-account) account to host files and add custom domain . 3. [Forestry](https://bit.ly/forestry-account) account to maintain whole project without code. ### Step 1 : Fork or Clone repository First we will fork this [northendlab hugo](https://github.com/themefisher/northendlab-hugo) template. ### Step 2 : Add your repository in Forestry Go to your [forestry](https://bit.ly/forestry-account) account and click on `import your site now`. declare your config.toml file [`exampleSite`] and fill up basic settings . **Or just click this button for one click installation** [![import to forestry](https://assets.forestry.io/import-to-forestryK.svg)](https://app.forestry.io/quick-start?repo=themefisher/northendlab-hugo&engine=hugo&version=0.60.1&config=exampleSite) Now mark everything as done, then go to configuration to change the base url . You can put any url but this have to similar as netlify . So for now put a name which you are going to put in netlify as netlify subdomain. ### Step 3 : Setup and host website with Netlify Here comes the last step . Go to your [netlify](https://bit.ly/netlify-account) account and click add new site . Choose your git repository to import your website in netlify . And now you can see the forked `northendlab hugo` theme. select it and follow the steps. Then go to `site settings` for change the site name and put your subdoamin name here what you puted on forestry as base url. save it and go to `deploy` from top menu, Wait a while and click on `site preview` or just simply go to the subdomain you puted as base url. **BOOM! Your site is live.** Now you can go to forestry and add, remove or customize every setting and content. > If you face any issue regarding the installation feel free to onen [open a new issue](https://github.com/themefisher/northendlab-hugo/issues) ## Table of Contents - [Demo](#demo) - [Installation](#installation) - [Main Features](#main-features) - [Reporting Issues](#reporting-issues) - [Technical Support or Questions](#technical-support-or-questions) - [More Hugo Themes](https://gethugothemes.com/shop/) ## Demo | Author | Contact | Search | Tools | |---|---|---|---| | ![author](https://user-images.githubusercontent.com/37659754/69005991-8cf4a400-0953-11ea-8dd7-b9a7819803a4.png) | ![contact](https://user-images.githubusercontent.com/37659754/69005990-8bc37700-0953-11ea-8189-3e8cb62b45bd.png) | ![search](https://user-images.githubusercontent.com/37659754/69005992-8cf4a400-0953-11ea-8349-e4f55ae123a5.png) | ![tools](https://user-images.githubusercontent.com/37659754/69005993-8d8d3a80-0953-11ea-965a-d30c3f71dfa2.png) | **The images are only for demonstration purpose, Please don't use those images.** [Live Demo](http://demo.themefisher.com/northendlab-hugo/). ## Installation At the top we have shown an easy hugo installation. but still if you think you want to go with the traditional way then use the following commands: ``` $ git clone git@github.com:themefisher/northendlab-hugo.git $ cd northendlab-hugo/exampleSite/ $ hugo server --themesDir ../.. ``` ## Main features - Bootstrap 4 Powered - Google Analytics - SEO Friendly - Multiple Author - Contact Page - Search Item - Responsive Ready ## Reporting Issues We use GitHub Issues as the official bug tracker for the Navigator Template. Please Search [existing issues](https://github.com/themefisher/northendlab-hugo/issues). It’s possible someone has already reported the same problem. If your problem or idea is not addressed yet, [open a new issue](https://github.com/themefisher/northendlab-hugo/issues) ## Technical Support or Questions If you have questions or need help integrating the product please [contact us](mailto:themefisher@gmail.com) instead of opening an issue. ## Hire Us We are available for Hiring of your next HUGO project. Drop Us a mail [themefisher@gmail.com](mailto:themefisher@gmail.com) ## Premium Themes | [![Mega-Bundle-HUGO](https://gethugothemes.com/wp-content/uploads/edd/2019/09/Mega-Bundle-HUGO.png)](https://themefisher.com/products/hugo-mega-bundle/) | [![revolve](https://gethugothemes.com/wp-content/uploads/edd/2019/11/revolve.jpg)](https://gethugothemes.com/products/revolve-hugo/) | [![Liva](https://gethugothemes.com/wp-content/uploads/edd/2019/11/liva.png)](https://gethugothemes.com/products/liva-hugo/) | |:---:|:---:|:---:| | **Hugo Mega Bundle** | **Revolve** | **Liva** | | [![northendlab](https://gethugothemes.com/wp-content/uploads/2019/11/Blogplate-Blog-Template.png)](https://gethugothemes.com/products/northendlab/) | [![Influencer](https://gethugothemes.com/wp-content/uploads/2019/11/Influencer.png)](https://gethugothemes.com/products/influencer-hugo/) | [![Kross](https://gethugothemes.com/wp-content/uploads/edd/2019/07/kross-portfolio-template.jpg)](https://gethugothemes.com/products/kross-hugo-theme/) | | **Northendlab** | **Influencer** | **Kross** | | [![Biztrox](https://gethugothemes.com/wp-content/uploads/2019/12/Biztrox.png)](https://gethugothemes.com/products/hugo-business-theme/) | [![Parsa](https://gethugothemes.com/wp-content/uploads/edd/2019/07/parsa-768x576.jpg)](https://gethugothemes.com/products/parsa-hugo-theme/) | [![all](https://gethugothemes.com/wp-content/uploads/2019/12/get-more-hugo-themes.png)](https://gethugothemes.com/shop/) | | **Biztrox** | **Parsa** | **More Hugo Themes** | ================================================ FILE: themes/northendlab/archetypes/default.md ================================================ +++ +++ ================================================ FILE: themes/northendlab/assets/js/script.js ================================================ (function ($) { 'use strict'; // Preloader js $(window).on('load', function () { $('.preloader').fadeOut(100); }); // navigation $(window).scroll(function () { if ($('.navigation').offset().top > 1) { $('.navigation').addClass('nav-bg'); } else { $('.navigation').removeClass('nav-bg'); } }); // Search Form Open $('#searchOpen').on('click', function () { $('.search-wrapper').addClass('open'); }); $('#searchClose').on('click', function () { $('.search-wrapper').removeClass('open'); }); })(jQuery); ================================================ FILE: themes/northendlab/assets/scss/_buttons.scss ================================================ /* Button style */ .btn { font-size: 16px; font-family: $primary-font; text-transform: capitalize; padding: 12px 20px; border-radius: 5px; border: 1px solid; position: relative; z-index: 1; transition: .2s ease; &:hover, &:active, &:focus { outline: 0; box-shadow: none !important; } } .btn-sm{ font-size: 15px; padding: 6px 10px; } .btn-primary { background: $primary-color; color: $white; border-color: $primary-color; &:active, &:hover, &.focus, &.active { background: $primary-color !important; border-color: $primary-color !important; } } .btn-outline-primary { background: transparent; color: $primary-color; border-color: $primary-color; &:active, &:hover, &.focus, &.active { background: $primary-color !important; border-color: $primary-color !important; color: $white; } } .btn-transparent { background: transparent; color: $primary-color; border: 0; border-bottom: 1px solid $primary-color; border-radius: 0; padding: 2px; &:active, &:hover, &.focus, &.active { background: transparent; } } ================================================ FILE: themes/northendlab/assets/scss/_common.scss ================================================ body { background-color: $body-color; overflow-x: hidden; } ::selection { background: lighten($color: $primary-color, $amount: 10); color: $white; } /* preloader */ .preloader { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background-color: #fff; z-index: 9999; display: flex; align-items: center; justify-content: center; } img { vertical-align: middle; border: 0; } a, button, select { cursor: pointer; transition: .2s ease; &:focus { outline: 0; } } .slick-slide { outline: 0; } .section { padding-top: 80px; padding-bottom: 80px; } .bg-cover { background-size: cover; background-position: center center; background-repeat: no-repeat; } .border-primary { border-color: $border-color !important; } /* overlay */ .overlay { position: relative; &::before { position: absolute; content: ''; height: 100%; width: 100%; top: 0; left: 0; background: $black; opacity: .5; } } .outline-0 { outline: 0 !important; } .d-unset { display: unset !important; } .bg-primary { background: $primary-color !important; } .bg-secondary { background: $secondary-color !important; } .bg-light{ background: $light !important; } .text-primary { color: $primary-color !important; } a.text-primary:hover { color: $primary-color !important; } .text-color { color: $text-color; } .mb-10 { margin-bottom: 10px !important; } .mb-20 { margin-bottom: 20px !important; } .mb-30 { margin-bottom: 30px !important; } .mb-40 { margin-bottom: 40px !important; } .mb-50 { margin-bottom: 50px !important; } .mb-60 { margin-bottom: 60px !important; } .mb-70 { margin-bottom: 70px !important; } .mb-80 { margin-bottom: 80px !important; } .mb-90 { margin-bottom: 90px !important; } .mb-100 { margin-bottom: 100px !important; } .zindex-1 { z-index: 1; } .overflow-hidden { overflow: hidden; } .shadow { box-shadow: 0 10px 30px 0 rgba(68,74,102,.1) !important; } .form-control{ height: 50px; line-height: 50px; &:focus{ outline: 0; box-shadow: none; border-color: $primary-color; } } textarea.form-control{ height: 150px; } .page-link:focus{ box-shadow: none; } ================================================ FILE: themes/northendlab/assets/scss/_mixins.scss ================================================ @mixin mobile-xs{ @media(max-width:400px){ @content; } } @mixin mobile{ @media(max-width:575px){ @content; } } @mixin tablet{ @media(max-width:767px){ @content; } } @mixin desktop{ @media(max-width:991px){ @content; } } @mixin desktop-lg{ @media(max-width:1200px){ @content; } } @mixin desktop-xl{ @media(max-width:1600px){ @content; } } @mixin size($size){ width: $size; height: $size; } ================================================ FILE: themes/northendlab/assets/scss/_typography.scss ================================================ /* typography */ @import url('https://fonts.googleapis.com/css?family=Muli:300,400,600,700&display=swap'); body { line-height: 1.5; font-family: $primary-font; -webkit-font-smoothing: antialiased; font-size: 15px; color: $text-color; } p, .paragraph { font-weight: 400; color: $text-color; font-size: 18px; line-height: 1.7; font-family: $primary-font; } a { color: $primary-color; &:hover{ color: $primary-color; } } h1,h2,h3,h4,h5,h6 { color: $text-color-dark; font-family: $primary-font; font-weight: 600; line-height: 1.2; a{ &:hover{ text-decoration: none; } } } h1, .h1{ font-size: 50px; } h2, .h2{ font-size: 40px; } h3, .h3{ font-size: 30px; } h4, .h4{ font-size: 26px; } h5, .h5{ font-size: 20px; } h6, .h6{ font-size: 16px; } ================================================ FILE: themes/northendlab/assets/scss/_variables.scss ================================================ // Color Variables $primary-color: #E8505B; $secondary-color: #9AC4F8; $text-color: #666666; $text-color-dark: #222222; $body-color: #fff; $border-color: #ACB9C4; $black: #000; $white: #fff; $light: #F8F8F8; // Font Variables $primary-font: 'Muli', sans-serif; $icon-font: 'themify'; ================================================ FILE: themes/northendlab/assets/scss/style.scss ================================================ /*!------------------------------------------------------------------ [MAIN STYLESHEET] PROJECT: Project Name VERSION: Versoin Number -------------------------------------------------------------------*/ /*------------------------------------------------------------------ [TABLE OF CONTENTS] -------------------------------------------------------------------*/ @import 'variables'; @import 'mixins'; @import 'typography'; @import 'buttons'; @import 'common'; @import 'templates/navigation.scss'; @import 'templates/main.scss'; ================================================ FILE: themes/northendlab/assets/scss/templates/_main.scss ================================================ /* body */ /* body { background-image: url(../images/backgrounds/pattern.png); } */ /* banner */ .banner { padding: 220px 0 120px; position: relative; @include desktop-lg { padding: 150px 0 100px; } @include desktop { padding: 100px 0 0; } .illustration { position: absolute; bottom: 0; right: 30px; @include desktop-xl { max-width: 600px; } @include desktop { display: none; } } .illustration-mobile{ display: none; @include desktop { display: block; } } } /* blog */ .block { padding: 60px 60px 40px; } .author-thumb{ height: 300px; width: 300px; object-fit: cover; } /* pagination */ .pagination { justify-content: center; .page-item { .page-link { display: inline-block; width: 40px; height: 40px; text-align: center; color: $text-color; border: 0; border-radius: 5px; &:hover { background: $primary-color; color: $white; } } &.active { .page-link { background: $primary-color; color: $white; } } } } .post-title:hover{ text-decoration: underline; } .post-meta{ color: #999; a{ color: inherit; &:hover{ color: $primary-color; } } } .content { * { margin-bottom: 20px; } h1, h2, h3, h4, h5, h6 { margin-bottom: 10px; } ol { padding-left: 20px; } ul { padding-left: 0; li { position: relative; padding-left: 20px; margin-bottom: 15px; list-style-type: none; &::before { position: absolute; content: "\e71b"; font-family: $icon-font; font-size: 14px; left: 0; top: 1px; color: $primary-color; transition: .3s ease; } } } table { text-align: left; width: 100%; max-width: 100%; margin-bottom: 1rem; border: 1px solid #dee2e6; th, td { padding: .75rem; vertical-align: top; border: 1px solid #dee2e6 } thead { background: darken($color: $light, $amount: 2); } tbody { background: $light; td { text-align: left !important; } } } blockquote { padding: 20px; background: $light; border-left: 3px solid $primary-color; p { margin-bottom: 0; color: $text-color-dark; font-style: italic !important; } } pre { padding: 10px 20px; background: $light; code { border: 0; background: transparent; padding: 0; } } a { color: $primary-color; &:hover { text-decoration: underline; } } code { padding: 3px 5px; background: $light; border: 1px solid $border-color; border-radius: 3px; color: $text-color-dark; } } /* social icon */ .social-icon{ a{ height: 45px; width: 45px; border: 1px solid $primary-color; border-radius: 50%; line-height: 45px; text-align: center; display: block; color: $primary-color; &:hover{ background: $primary-color; color: $white; } } } /* nav tab */ .nav-tab{ .nav-link{ padding: 15px; color: $text-color; border-radius: 5px; &.active{ @extend .shadow; color: $white; background: $primary-color; } } } ================================================ FILE: themes/northendlab/assets/scss/templates/_navigation.scss ================================================ .navigation { transition: .3s ease; &.fixed-top{ @include desktop { position: sticky !important; } } @include desktop { background: $white; } } .nav-bg { background-color: $white; box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.161); } .nav-item{ margin: 0; .nav-link{ text-transform: capitalize; } } .navbar-light .navbar-nav .nav-link { color: $text-color-dark; &:hover{ color: $primary-color; } } .navbar-expand-lg .navbar-nav .nav-link { padding: 20px; } /* search */ .search-btn { border: 0; background: transparent; } .search-wrapper { position: absolute; top: 0; left: 0; right: 0; height: 100%; z-index: 2; visibility: hidden; transition: .2s ease; opacity: 0; &.open { visibility: visible; opacity: 1; } } .search-box { height: 100%; width: 100%; border: 0; background: $white; font-size: 20px; padding: 0; &:focus { box-shadow: none !important; outline: 0; } } .search-close { position: absolute; right: 5px; top: 50%; transform: translateY(-50%); border: 0; background: transparent; page-break-after: 10px; font-size: 20px; } ================================================ FILE: themes/northendlab/exampleSite/.forestry/front_matter/templates/author.yml ================================================ --- label: Author hide_body: false fields: - type: text name: title label: title - type: text name: description label: description - type: file name: image label: image pages: - content/author/hasan-muhammad-mehedi.md - content/author/mehedi.md ================================================ FILE: themes/northendlab/exampleSite/.forestry/front_matter/templates/post.yml ================================================ --- label: Post hide_body: false fields: - type: text name: title label: title - type: datetime name: date label: date - type: file name: image label: image - type: text name: author label: author - type: text name: description label: description - type: list name: categories label: categories - type: text name: type label: type default: post pages: - content/the-terms-everybody-should-know-before-starting-seo.md - content/what-tools-you-are-using-for-website-analytics.md ================================================ FILE: themes/northendlab/exampleSite/.forestry/front_matter/templates/tools.yml ================================================ --- label: Tools hide_body: true fields: - type: field_group_list name: tools label: tools fields: - type: text name: title label: title - type: field_group_list name: tool label: tool fields: - type: text name: name label: name - type: file name: image label: image - type: text name: link label: link pages: - data/tools.yml ================================================ FILE: themes/northendlab/exampleSite/.forestry/settings.yml ================================================ --- new_page_extension: md auto_deploy: false admin_path: '' webhook_url: sections: - type: directory path: exampleSite/content label: Post create: documents match: "*" templates: - post - type: directory path: exampleSite/data label: Tools create: documents match: "**/*" new_doc_ext: yml templates: - tools - type: directory path: exampleSite/content/author label: Author create: documents match: "**/*" templates: - author - type: document path: exampleSite/documentation label: Documentation - type: directory path: exampleSite/content/contact label: Contact create: all match: "**/*" - type: directory path: exampleSite/ label: Configuration create: all match: "*.toml" new_doc_ext: toml upload_dir: exampleSite/static/images public_path: "/images" front_matter_path: '' use_front_matter_path: false file_template: ":filename:" build: preview_env: - HUGO_ENV=staging - HUGO_VERSION=0.58.2 preview_output_directory: public preview_docker_image: forestryio/hugo:latest mount_path: "/srv" working_dir: "/srv" instant_preview_command: hugo server -D -E -F --port 8080 --bind 0.0.0.0 --renderToDisk -d public version: 0.58.2 ================================================ FILE: themes/northendlab/exampleSite/config.toml ================================================ ############################ Default configuration ######################### baseURL = "https://examplesite.com/" languageCode = "en-us" # site title title = "Northendlab | Blog Template" # theme theme = "northendlab-hugo" # post pagination paginate = "5" # post excerpt summaryLength = "10" # disqus short name disqusShortname = "" # get your shortname form here : https://disqus.com [outputs] home = ["HTML", "AMP", "RSS", "JSON"] ########################## Plugings ###################################### # css plugins [[params.plugins.css]] link = "plugins/bootstrap/bootstrap.min.css" [[params.plugins.css]] link = "plugins/themify-icons/themify-icons.css" # js plugins [[params.plugins.js]] link = "plugins/jQuery/jquery.min.js" [[params.plugins.js]] link = "plugins/bootstrap/bootstrap.min.js" [[params.plugins.js]] link = "plugins/search/fuse.min.js" [[params.plugins.js]] link = "plugins/search/mark.js" [[params.plugins.js]] link = "plugins/search/search.js" ########################### Navigation ################################### # main menu [[menu.main]] URL = "contact" name = "Contact" weight = 1 [[menu.main]] URL = "tools" name = "tools" weight = 2 # footer menu [[menu.footer]] URL = "contact" name = "Contact" weight = 1 [[menu.footer]] URL = "tools" name = "tools" weight = 2 ######################### Default Parameters ########################### [params] # home home = "Home" # logo logo = "images/logo.svg" # meta data author = "Themefisher" description = "This is meta description" # google tag manager google_tag_manager = "" # your id # google analitycs ID google_analitycs_id = "" # your id # contact form action contact_form_action = "#" # contact form works with : https://formspree.io # copyright copyright = "© 2019 [Gethugothemes](https://gethugothemes.com) All Rights Reserved" # preloader [params.preloader] enable = true preloader = "" # use png, jpg, svg or gif format # search [params.search] enable = true ####################### banner ####################################### [params.banner] bgImage = "images/banner/banner-bg.svg" title = "Hi, I'm John Smith Doe.
I help people make the worlds best software" image = "images/banner/illustration.svg" ######################## call to action ############################### [params.cta] enable = true image = "images/hugo-muscot.svg" title = "Get the best hugo templates" description = "Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis in faucibus." [params.cta.button] enable = true label = "Visit Here" link = "https://gethugothemes.com/shop/" ############################## Social Site ########################## [[params.social]] icon = "ti-facebook" # themify icon pack https://themify.me/themify-icons link = "#" [[params.social]] icon = "ti-twitter-alt" # themify icon pack https://themify.me/themify-icons link = "#" [[params.social]] icon = "ti-github" # themify icon pack https://themify.me/themify-icons link = "#" [[params.social]] icon = "ti-linkedin" # themify icon pack https://themify.me/themify-icons link = "#" ================================================ FILE: themes/northendlab/exampleSite/content/author/john-doe.md ================================================ +++ title = "John Doe" image = "/images/author/john-doe.jpg" description = "Front end developer" +++ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. ================================================ FILE: themes/northendlab/exampleSite/content/author/mark-dinn.md ================================================ +++ title = "Mark Dinn" image = "/images/author/mark-dinn.jpg" description = "This is meta description" +++ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. ================================================ FILE: themes/northendlab/exampleSite/content/contact/_index.md ================================================ --- title: "Contact Us" draft: false description : "this is meta description" image: "images/contact.svg" --- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labor. ================================================ FILE: themes/northendlab/exampleSite/content/my-awesome-blog-post-2.md ================================================ +++ title = "My awesome second blog post" image = "/images/post/post-2.jpg" author = "John Doe" date = 2019-11-07T05:00:00Z description = "This is meta description" categories = ["Design Tools"] type = "post" +++ Are you Developer and recently started your own business and Already made a website to ensure online presence and wants to reach more people. but you are not getting as much as response from your targeted customer or you are unable to reach them. SEO(Search engine optimization)is the cheapest way to reach your customer or client. After 2000 the Internet is more easy access to common people and most of the netizens to find out information search on google/yahoo/bing like a search engine. So if your site ranks at the top of the SERP for your target keywords then sure you will get more valuable traffic to your site and it will help you a lot to grow your business. Above Paragraph, you see SERP or Keywords that are common SEO Term so Before starting learning SEO let's learn the term used by the SEO expert. It will smoothen your learning journey. Or if you are wishing to hire an SEO guy it will help you his task he/she doing and understand he/she going on the right path. So not making delay let dive… **Algorithm:** “Algorithm is a process or set of rules to be followed in calculations or other problem-solving operations, especially by a computer.” It is its definition. In SEO we basically mean A very sophisticated and complex program used by the search engine to find out data and indexing it, And when a user gives a data query this program also decides the best result to place in the SERP in order. All search engines use multiple algorithms combination on their data collection and result giving process in different stages. **Algorithm Change:** All the search engine service providers always try to give the best results to their users. So they always working on updating, refreshing or making and implementing new algorithms. The search engine service provider never revealed the exact date of rolling out any updates or new algorithms to make an effective date. Normally they give a boundary of time like this week or this month, we are going to rolling out a major update or applying new this algorithm. They give this new algorithm a name and they always call it by the given name. Like, google spider, Google panda, etc. Most of the time After one to two week we can see and understand the update or change impact but sometimes it also happens quicker also. * Algorithm Update: Search Engines regularly making minor changes in their system they normally don’t give an official announcement. But SEO related blogs and journals give the news what the changes made. So Keep update regular visit this industry-related community is important. And when the Major update come You must observe your ranking behavior and if you find you've got the penalty then quickly take necessary step undereating the guidelines given by search engine company. * Algorithm Refresh: Search engine operator after a regular interval re-run the existing algorithm to find out the new spammer. * New Algorithm: Improving search quality google and other search engines regularly bringing new algorithms. All new algorithm has its special purpose to serve in the total search engine working process. ================================================ FILE: themes/northendlab/exampleSite/content/my-awesome-blog-post-3.md ================================================ +++ title = "My awesome second blog post" image = "/images/post/post-1.jpg" author = "Mark Dinn" date = 2019-11-07T05:00:00Z description = "This is meta description" categories = ["Development Tools"] type = "post" +++ Are you Developer and recently started your own business and Already made a website to ensure online presence and wants to reach more people. but you are not getting as much as response from your targeted customer or you are unable to reach them. SEO(Search engine optimization)is the cheapest way to reach your customer or client. After 2000 the Internet is more easy access to common people and most of the netizens to find out information search on google/yahoo/bing like a search engine. So if your site ranks at the top of the SERP for your target keywords then sure you will get more valuable traffic to your site and it will help you a lot to grow your business. Above Paragraph, you see SERP or Keywords that are common SEO Term so Before starting learning SEO let's learn the term used by the SEO expert. It will smoothen your learning journey. Or if you are wishing to hire an SEO guy it will help you his task he/she doing and understand he/she going on the right path. So not making delay let dive… **Algorithm:** “Algorithm is a process or set of rules to be followed in calculations or other problem-solving operations, especially by a computer.” It is its definition. In SEO we basically mean A very sophisticated and complex program used by the search engine to find out data and indexing it, And when a user gives a data query this program also decides the best result to place in the SERP in order. All search engines use multiple algorithms combination on their data collection and result giving process in different stages. **Algorithm Change:** All the search engine service providers always try to give the best results to their users. So they always working on updating, refreshing or making and implementing new algorithms. The search engine service provider never revealed the exact date of rolling out any updates or new algorithms to make an effective date. Normally they give a boundary of time like this week or this month, we are going to rolling out a major update or applying new this algorithm. They give this new algorithm a name and they always call it by the given name. Like, google spider, Google panda, etc. Most of the time After one to two week we can see and understand the update or change impact but sometimes it also happens quicker also. * Algorithm Update: Search Engines regularly making minor changes in their system they normally don’t give an official announcement. But SEO related blogs and journals give the news what the changes made. So Keep update regular visit this industry-related community is important. And when the Major update come You must observe your ranking behavior and if you find you've got the penalty then quickly take necessary step undereating the guidelines given by search engine company. * Algorithm Refresh: Search engine operator after a regular interval re-run the existing algorithm to find out the new spammer. * New Algorithm: Improving search quality google and other search engines regularly bringing new algorithms. All new algorithm has its special purpose to serve in the total search engine working process. ================================================ FILE: themes/northendlab/exampleSite/content/my-awesome-blog-post-4.md ================================================ +++ title = "My awesome second blog post" image = "/images/post/post-3.jpg" author = "John Doe" date = 2019-11-07T05:00:00Z description = "This is meta description" categories = ["Hugo"] type = "post" +++ Are you Developer and recently started your own business and Already made a website to ensure online presence and wants to reach more people. but you are not getting as much as response from your targeted customer or you are unable to reach them. SEO(Search engine optimization)is the cheapest way to reach your customer or client. After 2000 the Internet is more easy access to common people and most of the netizens to find out information search on google/yahoo/bing like a search engine. So if your site ranks at the top of the SERP for your target keywords then sure you will get more valuable traffic to your site and it will help you a lot to grow your business. Above Paragraph, you see SERP or Keywords that are common SEO Term so Before starting learning SEO let's learn the term used by the SEO expert. It will smoothen your learning journey. Or if you are wishing to hire an SEO guy it will help you his task he/she doing and understand he/she going on the right path. So not making delay let dive… **Algorithm:** “Algorithm is a process or set of rules to be followed in calculations or other problem-solving operations, especially by a computer.” It is its definition. In SEO we basically mean A very sophisticated and complex program used by the search engine to find out data and indexing it, And when a user gives a data query this program also decides the best result to place in the SERP in order. All search engines use multiple algorithms combination on their data collection and result giving process in different stages. **Algorithm Change:** All the search engine service providers always try to give the best results to their users. So they always working on updating, refreshing or making and implementing new algorithms. The search engine service provider never revealed the exact date of rolling out any updates or new algorithms to make an effective date. Normally they give a boundary of time like this week or this month, we are going to rolling out a major update or applying new this algorithm. They give this new algorithm a name and they always call it by the given name. Like, google spider, Google panda, etc. Most of the time After one to two week we can see and understand the update or change impact but sometimes it also happens quicker also. * Algorithm Update: Search Engines regularly making minor changes in their system they normally don’t give an official announcement. But SEO related blogs and journals give the news what the changes made. So Keep update regular visit this industry-related community is important. And when the Major update come You must observe your ranking behavior and if you find you've got the penalty then quickly take necessary step undereating the guidelines given by search engine company. * Algorithm Refresh: Search engine operator after a regular interval re-run the existing algorithm to find out the new spammer. * New Algorithm: Improving search quality google and other search engines regularly bringing new algorithms. All new algorithm has its special purpose to serve in the total search engine working process. ================================================ FILE: themes/northendlab/exampleSite/content/my-awesome-blog-post-5.md ================================================ +++ title = "My awesome second blog post" image = "/images/post/post-3.jpg" author = "Mark Dinn" date = 2019-11-07T05:00:00Z description = "This is meta description" categories = ["Hugo"] type = "post" +++ Are you Developer and recently started your own business and Already made a website to ensure online presence and wants to reach more people. but you are not getting as much as response from your targeted customer or you are unable to reach them. SEO(Search engine optimization)is the cheapest way to reach your customer or client. After 2000 the Internet is more easy access to common people and most of the netizens to find out information search on google/yahoo/bing like a search engine. So if your site ranks at the top of the SERP for your target keywords then sure you will get more valuable traffic to your site and it will help you a lot to grow your business. Above Paragraph, you see SERP or Keywords that are common SEO Term so Before starting learning SEO let's learn the term used by the SEO expert. It will smoothen your learning journey. Or if you are wishing to hire an SEO guy it will help you his task he/she doing and understand he/she going on the right path. So not making delay let dive… **Algorithm:** “Algorithm is a process or set of rules to be followed in calculations or other problem-solving operations, especially by a computer.” It is its definition. In SEO we basically mean A very sophisticated and complex program used by the search engine to find out data and indexing it, And when a user gives a data query this program also decides the best result to place in the SERP in order. All search engines use multiple algorithms combination on their data collection and result giving process in different stages. **Algorithm Change:** All the search engine service providers always try to give the best results to their users. So they always working on updating, refreshing or making and implementing new algorithms. The search engine service provider never revealed the exact date of rolling out any updates or new algorithms to make an effective date. Normally they give a boundary of time like this week or this month, we are going to rolling out a major update or applying new this algorithm. They give this new algorithm a name and they always call it by the given name. Like, google spider, Google panda, etc. Most of the time After one to two week we can see and understand the update or change impact but sometimes it also happens quicker also. * Algorithm Update: Search Engines regularly making minor changes in their system they normally don’t give an official announcement. But SEO related blogs and journals give the news what the changes made. So Keep update regular visit this industry-related community is important. And when the Major update come You must observe your ranking behavior and if you find you've got the penalty then quickly take necessary step undereating the guidelines given by search engine company. * Algorithm Refresh: Search engine operator after a regular interval re-run the existing algorithm to find out the new spammer. * New Algorithm: Improving search quality google and other search engines regularly bringing new algorithms. All new algorithm has its special purpose to serve in the total search engine working process. ================================================ FILE: themes/northendlab/exampleSite/content/my-awesome-blog-post-6.md ================================================ +++ title = "My awesome second blog post" image = "/images/post/post-1.jpg" author = "John Doe" date = 2019-11-07T05:00:00Z description = "This is meta description" categories = ["Development Tools"] type = "post" +++ Are you Developer and recently started your own business and Already made a website to ensure online presence and wants to reach more people. but you are not getting as much as response from your targeted customer or you are unable to reach them. SEO(Search engine optimization)is the cheapest way to reach your customer or client. After 2000 the Internet is more easy access to common people and most of the netizens to find out information search on google/yahoo/bing like a search engine. So if your site ranks at the top of the SERP for your target keywords then sure you will get more valuable traffic to your site and it will help you a lot to grow your business. Above Paragraph, you see SERP or Keywords that are common SEO Term so Before starting learning SEO let's learn the term used by the SEO expert. It will smoothen your learning journey. Or if you are wishing to hire an SEO guy it will help you his task he/she doing and understand he/she going on the right path. So not making delay let dive… **Algorithm:** “Algorithm is a process or set of rules to be followed in calculations or other problem-solving operations, especially by a computer.” It is its definition. In SEO we basically mean A very sophisticated and complex program used by the search engine to find out data and indexing it, And when a user gives a data query this program also decides the best result to place in the SERP in order. All search engines use multiple algorithms combination on their data collection and result giving process in different stages. **Algorithm Change:** All the search engine service providers always try to give the best results to their users. So they always working on updating, refreshing or making and implementing new algorithms. The search engine service provider never revealed the exact date of rolling out any updates or new algorithms to make an effective date. Normally they give a boundary of time like this week or this month, we are going to rolling out a major update or applying new this algorithm. They give this new algorithm a name and they always call it by the given name. Like, google spider, Google panda, etc. Most of the time After one to two week we can see and understand the update or change impact but sometimes it also happens quicker also. * Algorithm Update: Search Engines regularly making minor changes in their system they normally don’t give an official announcement. But SEO related blogs and journals give the news what the changes made. So Keep update regular visit this industry-related community is important. And when the Major update come You must observe your ranking behavior and if you find you've got the penalty then quickly take necessary step undereating the guidelines given by search engine company. * Algorithm Refresh: Search engine operator after a regular interval re-run the existing algorithm to find out the new spammer. * New Algorithm: Improving search quality google and other search engines regularly bringing new algorithms. All new algorithm has its special purpose to serve in the total search engine working process. ================================================ FILE: themes/northendlab/exampleSite/content/my-awesome-blog-post.1.md ================================================ +++ title = "My awesome blog post" image = "/images/post/post-3.jpg" author = "John Doe" date = 2019-11-07T05:00:00Z description = "This is meta description" categories = ["SEO Learning"] type = "post" +++ Are you Developer and recently started your own business and Already made a website to ensure online presence and wants to reach more people. but you are not getting as much as response from your targeted customer or you are unable to reach them. SEO(Search engine optimization)is the cheapest way to reach your customer or client. After 2000 the Internet is more easy access to common people and most of the netizens to find out information search on google/yahoo/bing like a search engine. So if your site ranks at the top of the SERP for your target keywords then sure you will get more valuable traffic to your site and it will help you a lot to grow your business. Above Paragraph, you see SERP or Keywords that are common SEO Term so Before starting learning SEO let's learn the term used by the SEO expert. It will smoothen your learning journey. Or if you are wishing to hire an SEO guy it will help you his task he/she doing and understand he/she going on the right path. So not making delay let dive… **Algorithm:** “Algorithm is a process or set of rules to be followed in calculations or other problem-solving operations, especially by a computer.” It is its definition. In SEO we basically mean A very sophisticated and complex program used by the search engine to find out data and indexing it, And when a user gives a data query this program also decides the best result to place in the SERP in order. All search engines use multiple algorithms combination on their data collection and result giving process in different stages. **Algorithm Change:** All the search engine service providers always try to give the best results to their users. So they always working on updating, refreshing or making and implementing new algorithms. The search engine service provider never revealed the exact date of rolling out any updates or new algorithms to make an effective date. Normally they give a boundary of time like this week or this month, we are going to rolling out a major update or applying new this algorithm. They give this new algorithm a name and they always call it by the given name. Like, google spider, Google panda, etc. Most of the time After one to two week we can see and understand the update or change impact but sometimes it also happens quicker also. * Algorithm Update: Search Engines regularly making minor changes in their system they normally don’t give an official announcement. But SEO related blogs and journals give the news what the changes made. So Keep update regular visit this industry-related community is important. And when the Major update come You must observe your ranking behavior and if you find you've got the penalty then quickly take necessary step undereating the guidelines given by search engine company. * Algorithm Refresh: Search engine operator after a regular interval re-run the existing algorithm to find out the new spammer. * New Algorithm: Improving search quality google and other search engines regularly bringing new algorithms. All new algorithm has its special purpose to serve in the total search engine working process. ================================================ FILE: themes/northendlab/exampleSite/content/my-awesome-blog-post.2.md ================================================ +++ title = "My awesome blog post" image = "/images/post/post-2.jpg" author = "Mark Dinn" date = 2019-11-07T05:00:00Z description = "This is meta description" categories = ["Meta Data"] type = "post" +++ Are you Developer and recently started your own business and Already made a website to ensure online presence and wants to reach more people. but you are not getting as much as response from your targeted customer or you are unable to reach them. SEO(Search engine optimization)is the cheapest way to reach your customer or client. After 2000 the Internet is more easy access to common people and most of the netizens to find out information search on google/yahoo/bing like a search engine. So if your site ranks at the top of the SERP for your target keywords then sure you will get more valuable traffic to your site and it will help you a lot to grow your business. Above Paragraph, you see SERP or Keywords that are common SEO Term so Before starting learning SEO let's learn the term used by the SEO expert. It will smoothen your learning journey. Or if you are wishing to hire an SEO guy it will help you his task he/she doing and understand he/she going on the right path. So not making delay let dive… **Algorithm:** “Algorithm is a process or set of rules to be followed in calculations or other problem-solving operations, especially by a computer.” It is its definition. In SEO we basically mean A very sophisticated and complex program used by the search engine to find out data and indexing it, And when a user gives a data query this program also decides the best result to place in the SERP in order. All search engines use multiple algorithms combination on their data collection and result giving process in different stages. **Algorithm Change:** All the search engine service providers always try to give the best results to their users. So they always working on updating, refreshing or making and implementing new algorithms. The search engine service provider never revealed the exact date of rolling out any updates or new algorithms to make an effective date. Normally they give a boundary of time like this week or this month, we are going to rolling out a major update or applying new this algorithm. They give this new algorithm a name and they always call it by the given name. Like, google spider, Google panda, etc. Most of the time After one to two week we can see and understand the update or change impact but sometimes it also happens quicker also. * Algorithm Update: Search Engines regularly making minor changes in their system they normally don’t give an official announcement. But SEO related blogs and journals give the news what the changes made. So Keep update regular visit this industry-related community is important. And when the Major update come You must observe your ranking behavior and if you find you've got the penalty then quickly take necessary step undereating the guidelines given by search engine company. * Algorithm Refresh: Search engine operator after a regular interval re-run the existing algorithm to find out the new spammer. * New Algorithm: Improving search quality google and other search engines regularly bringing new algorithms. All new algorithm has its special purpose to serve in the total search engine working process. ================================================ FILE: themes/northendlab/exampleSite/content/my-awesome-blog-post.3.md ================================================ +++ title = "My awesome blog post" image = "/images/post/post-3.jpg" author = "John Doe" date = 2019-11-07T05:00:00Z description = "This is meta description" categories = ["Hugo"] type = "post" +++ Are you Developer and recently started your own business and Already made a website to ensure online presence and wants to reach more people. but you are not getting as much as response from your targeted customer or you are unable to reach them. SEO(Search engine optimization)is the cheapest way to reach your customer or client. After 2000 the Internet is more easy access to common people and most of the netizens to find out information search on google/yahoo/bing like a search engine. So if your site ranks at the top of the SERP for your target keywords then sure you will get more valuable traffic to your site and it will help you a lot to grow your business. Above Paragraph, you see SERP or Keywords that are common SEO Term so Before starting learning SEO let's learn the term used by the SEO expert. It will smoothen your learning journey. Or if you are wishing to hire an SEO guy it will help you his task he/she doing and understand he/she going on the right path. So not making delay let dive… **Algorithm:** “Algorithm is a process or set of rules to be followed in calculations or other problem-solving operations, especially by a computer.” It is its definition. In SEO we basically mean A very sophisticated and complex program used by the search engine to find out data and indexing it, And when a user gives a data query this program also decides the best result to place in the SERP in order. All search engines use multiple algorithms combination on their data collection and result giving process in different stages. **Algorithm Change:** All the search engine service providers always try to give the best results to their users. So they always working on updating, refreshing or making and implementing new algorithms. The search engine service provider never revealed the exact date of rolling out any updates or new algorithms to make an effective date. Normally they give a boundary of time like this week or this month, we are going to rolling out a major update or applying new this algorithm. They give this new algorithm a name and they always call it by the given name. Like, google spider, Google panda, etc. Most of the time After one to two week we can see and understand the update or change impact but sometimes it also happens quicker also. * Algorithm Update: Search Engines regularly making minor changes in their system they normally don’t give an official announcement. But SEO related blogs and journals give the news what the changes made. So Keep update regular visit this industry-related community is important. And when the Major update come You must observe your ranking behavior and if you find you've got the penalty then quickly take necessary step undereating the guidelines given by search engine company. * Algorithm Refresh: Search engine operator after a regular interval re-run the existing algorithm to find out the new spammer. * New Algorithm: Improving search quality google and other search engines regularly bringing new algorithms. All new algorithm has its special purpose to serve in the total search engine working process. ================================================ FILE: themes/northendlab/exampleSite/content/my-awesome-blog-post.4.md ================================================ +++ title = "My awesome blog post" image = "/images/post/post-1.jpg" author = "Mark Dinn" date = 2019-11-07T05:00:00Z description = "This is meta description" categories = ["Hugo"] type = "post" +++ Are you Developer and recently started your own business and Already made a website to ensure online presence and wants to reach more people. but you are not getting as much as response from your targeted customer or you are unable to reach them. SEO(Search engine optimization)is the cheapest way to reach your customer or client. After 2000 the Internet is more easy access to common people and most of the netizens to find out information search on google/yahoo/bing like a search engine. So if your site ranks at the top of the SERP for your target keywords then sure you will get more valuable traffic to your site and it will help you a lot to grow your business. Above Paragraph, you see SERP or Keywords that are common SEO Term so Before starting learning SEO let's learn the term used by the SEO expert. It will smoothen your learning journey. Or if you are wishing to hire an SEO guy it will help you his task he/she doing and understand he/she going on the right path. So not making delay let dive… **Algorithm:** “Algorithm is a process or set of rules to be followed in calculations or other problem-solving operations, especially by a computer.” It is its definition. In SEO we basically mean A very sophisticated and complex program used by the search engine to find out data and indexing it, And when a user gives a data query this program also decides the best result to place in the SERP in order. All search engines use multiple algorithms combination on their data collection and result giving process in different stages. **Algorithm Change:** All the search engine service providers always try to give the best results to their users. So they always working on updating, refreshing or making and implementing new algorithms. The search engine service provider never revealed the exact date of rolling out any updates or new algorithms to make an effective date. Normally they give a boundary of time like this week or this month, we are going to rolling out a major update or applying new this algorithm. They give this new algorithm a name and they always call it by the given name. Like, google spider, Google panda, etc. Most of the time After one to two week we can see and understand the update or change impact but sometimes it also happens quicker also. * Algorithm Update: Search Engines regularly making minor changes in their system they normally don’t give an official announcement. But SEO related blogs and journals give the news what the changes made. So Keep update regular visit this industry-related community is important. And when the Major update come You must observe your ranking behavior and if you find you've got the penalty then quickly take necessary step undereating the guidelines given by search engine company. * Algorithm Refresh: Search engine operator after a regular interval re-run the existing algorithm to find out the new spammer. * New Algorithm: Improving search quality google and other search engines regularly bringing new algorithms. All new algorithm has its special purpose to serve in the total search engine working process. ================================================ FILE: themes/northendlab/exampleSite/content/my-awesome-blog-post.md ================================================ +++ title = "My awesome blog post" image = "/images/post/post-1.jpg" author = "Mark Dinn" date = 2019-11-07T05:00:00Z description = "This is meta description" categories = ["Meta Data"] type = "post" +++ Are you Developer and recently started your own business and Already made a website to ensure online presence and wants to reach more people. but you are not getting as much as response from your targeted customer or you are unable to reach them. SEO(Search engine optimization)is the cheapest way to reach your customer or client. After 2000 the Internet is more easy access to common people and most of the netizens to find out information search on google/yahoo/bing like a search engine. So if your site ranks at the top of the SERP for your target keywords then sure you will get more valuable traffic to your site and it will help you a lot to grow your business. Above Paragraph, you see SERP or Keywords that are common SEO Term so Before starting learning SEO let's learn the term used by the SEO expert. It will smoothen your learning journey. Or if you are wishing to hire an SEO guy it will help you his task he/she doing and understand he/she going on the right path. So not making delay let dive… **Algorithm:** “Algorithm is a process or set of rules to be followed in calculations or other problem-solving operations, especially by a computer.” It is its definition. In SEO we basically mean A very sophisticated and complex program used by the search engine to find out data and indexing it, And when a user gives a data query this program also decides the best result to place in the SERP in order. All search engines use multiple algorithms combination on their data collection and result giving process in different stages. **Algorithm Change:** All the search engine service providers always try to give the best results to their users. So they always working on updating, refreshing or making and implementing new algorithms. The search engine service provider never revealed the exact date of rolling out any updates or new algorithms to make an effective date. Normally they give a boundary of time like this week or this month, we are going to rolling out a major update or applying new this algorithm. They give this new algorithm a name and they always call it by the given name. Like, google spider, Google panda, etc. Most of the time After one to two week we can see and understand the update or change impact but sometimes it also happens quicker also. * Algorithm Update: Search Engines regularly making minor changes in their system they normally don’t give an official announcement. But SEO related blogs and journals give the news what the changes made. So Keep update regular visit this industry-related community is important. And when the Major update come You must observe your ranking behavior and if you find you've got the penalty then quickly take necessary step undereating the guidelines given by search engine company. * Algorithm Refresh: Search engine operator after a regular interval re-run the existing algorithm to find out the new spammer. * New Algorithm: Improving search quality google and other search engines regularly bringing new algorithms. All new algorithm has its special purpose to serve in the total search engine working process. ================================================ FILE: themes/northendlab/exampleSite/content/search/_index.md ================================================ --- title: "Search Result" draft: false description : "this is meta description" --- ================================================ FILE: themes/northendlab/exampleSite/content/tools/_index.md ================================================ --- title: "Tools" draft: false description : "this is meta description" --- ================================================ FILE: themes/northendlab/exampleSite/data/tools.yml ================================================ tools: # tool category - title: Dev Tools tool: # tool loop in tool category - name: Git image: "/images/tools/Git.png" link: https://git-scm.com/ # tool loop in tool category - name: Atom image: "/images/tools/Atom.png" link: https://atom.io/ # tool loop in tool category - name: Notepad ++ image: "/images/tools/Notepad.png" link: https://notepad-plus-plus.org/ # tool loop in tool category - name: Sublime Text image: "/images/tools/sublime.png" link: https://www.sublimetext.com/ # tool loop in tool category - name: Visual Studio Code image: "/images/tools/vs-code.png" link: https://code.visualstudio.com/ # tool category - title: Design Tools tool: # tool loop in tool category - name: Sketch image: "/images/tools/sketch.png" link: https://www.sketch.com/ # tool loop in tool category - name: Adobe Illustrator image: "/images/tools/illustrator.png" link: https://www.adobe.com/products/illustrator.html # tool loop in tool category - name: Invision image: "/images/tools/invision.png" link: https://www.invisionapp.com/studio # tool loop in tool category - name: Adobe XD image: "/images/tools/xd.png" link: https://www.adobe.com/products/xd.html # tool loop in tool category - name: Figma image: "/images/tools/figma.png" link: https://www.figma.com/ # tool category - title: Digital Marketing Tools tool: # tool loop in tool category - name: Mailchimp image: "/images/tools/MailChimp.jpg" link: https://mailchimp.com/ # tool loop in tool category - name: Buffer image: "/images/tools/Buffer.jpg" link: https://buffer.com/ # tool loop in tool category - name: Bitly Link image: "/images/tools/Bitly.jpg" link: https://bitly.com/ # tool loop in tool category - name: Hotjar image: "/images/tools/Hotjar.jpg" link: https://www.hotjar.com/ # tool loop in tool category - name: Ahrefs image: "/images/tools/Ahrefs.jpg" link: https://ahrefs.com/ # tool loop in tool category - name: Google Trends image: "/images/tools/GoogleTrends.jpg" link: https://trends.google.com/trends/ # tool loop in tool category - name: Google Analytics image: "/images/tools/Google-Analytics.jpg" link: https://analytics.google.com/analytics/web ================================================ FILE: themes/northendlab/exampleSite/resources/_gen/assets/scss/scss/style.scss_b95b077eb505d5c0aff8055eaced30ad.content ================================================ /*!------------------------------------------------------------------ [MAIN STYLESHEET] PROJECT: Project Name VERSION: Versoin Number -------------------------------------------------------------------*/@import "https://fonts.googleapis.com/css?family=Muli:300,400,600,700&display=swap";body{line-height:1.5;font-family:muli,sans-serif;-webkit-font-smoothing:antialiased;font-size:15px;color:#666}p,.paragraph{font-weight:400;color:#666;font-size:18px;line-height:1.7;font-family:muli,sans-serif}a{color:#e8505b}a:hover{color:#e8505b}h1,h2,h3,h4,h5,h6{color:#222;font-family:muli,sans-serif;font-weight:600;line-height:1.2}h1 a:hover,h2 a:hover,h3 a:hover,h4 a:hover,h5 a:hover,h6 a:hover{text-decoration:none}h1,.h1{font-size:50px}h2,.h2{font-size:40px}h3,.h3{font-size:30px}h4,.h4{font-size:26px}h5,.h5{font-size:20px}h6,.h6{font-size:16px}.btn{font-size:16px;font-family:muli,sans-serif;text-transform:capitalize;padding:12px 20px;border-radius:5px;border:1px solid;position:relative;z-index:1;transition:.2s ease}.btn:hover,.btn:active,.btn:focus{outline:0;box-shadow:none!important}.btn-sm{font-size:15px;padding:6px 10px}.btn-primary{background:#e8505b;color:#fff;border-color:#e8505b}.btn-primary:active,.btn-primary:hover,.btn-primary.focus,.btn-primary.active{background:#e8505b!important;border-color:#e8505b!important}.btn-outline-primary{background:0 0;color:#e8505b;border-color:#e8505b}.btn-outline-primary:active,.btn-outline-primary:hover,.btn-outline-primary.focus,.btn-outline-primary.active{background:#e8505b!important;border-color:#e8505b!important;color:#fff}.btn-transparent{background:0 0;color:#e8505b;border:0;border-bottom:1px solid #e8505b;border-radius:0;padding:2px}.btn-transparent:active,.btn-transparent:hover,.btn-transparent.focus,.btn-transparent.active{background:0 0}body{background-color:#fff;overflow-x:hidden}::selection{background:#ee7d85;color:#fff}.preloader{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#fff;z-index:9999;display:flex;align-items:center;justify-content:center}img{vertical-align:middle;border:0}a,button,select{cursor:pointer;transition:.2s ease}a:focus,button:focus,select:focus{outline:0}.slick-slide{outline:0}.section{padding-top:80px;padding-bottom:80px}.bg-cover{background-size:cover;background-position:50%;background-repeat:no-repeat}.border-primary{border-color:#acb9c4!important}.overlay{position:relative}.overlay::before{position:absolute;content:'';height:100%;width:100%;top:0;left:0;background:#000;opacity:.5}.outline-0{outline:0!important}.d-unset{display:unset!important}.bg-primary{background:#e8505b!important}.bg-secondary{background:#9ac4f8!important}.bg-light{background:#f8f8f8!important}.text-primary{color:#e8505b!important}a.text-primary:hover{color:#e8505b!important}.text-color{color:#666}.mb-10{margin-bottom:10px!important}.mb-20{margin-bottom:20px!important}.mb-30{margin-bottom:30px!important}.mb-40{margin-bottom:40px!important}.mb-50{margin-bottom:50px!important}.mb-60{margin-bottom:60px!important}.mb-70{margin-bottom:70px!important}.mb-80{margin-bottom:80px!important}.mb-90{margin-bottom:90px!important}.mb-100{margin-bottom:100px!important}.zindex-1{z-index:1}.overflow-hidden{overflow:hidden}.shadow,.nav-tab .nav-link.active{box-shadow:0 10px 30px 0 rgba(68,74,102,.1)!important}.form-control{height:50px;line-height:50px}.form-control:focus{outline:0;box-shadow:none;border-color:#e8505b}textarea.form-control{height:150px}.page-link:focus{box-shadow:none}.navigation{transition:.3s ease}@media(max-width:991px){.navigation.fixed-top{position:sticky!important}}@media(max-width:991px){.navigation{background:#fff}}.nav-bg{background-color:#fff;box-shadow:0 0 10px rgba(0,0,0,.161)}.nav-item{margin:0}.nav-item .nav-link{text-transform:capitalize}.navbar-light .navbar-nav .nav-link{color:#222}.navbar-light .navbar-nav .nav-link:hover{color:#e8505b}.navbar-expand-lg .navbar-nav .nav-link{padding:20px}.search-btn{border:0;background:0 0}.search-wrapper{position:absolute;top:0;left:0;right:0;height:100%;z-index:2;visibility:hidden;transition:.2s ease;opacity:0}.search-wrapper.open{visibility:visible;opacity:1}.search-box{height:100%;width:100%;border:0;background:#fff;font-size:20px;padding:0}.search-box:focus{box-shadow:none!important;outline:0}.search-close{position:absolute;right:5px;top:50%;transform:translateY(-50%);border:0;background:0 0;page-break-after:10px;font-size:20px}.banner{padding:220px 0 120px;position:relative}@media(max-width:1200px){.banner{padding:150px 0 100px}}@media(max-width:991px){.banner{padding:100px 0 0}}.banner .illustration{position:absolute;bottom:0;right:30px}@media(max-width:1600px){.banner .illustration{max-width:600px}}@media(max-width:991px){.banner .illustration{display:none}}.banner .illustration-mobile{display:none}@media(max-width:991px){.banner .illustration-mobile{display:block}}.block{padding:60px 60px 40px}.author-thumb{height:300px;width:300px;object-fit:cover}.pagination{justify-content:center}.pagination .page-item .page-link{display:inline-block;width:40px;height:40px;text-align:center;color:#666;border:0;border-radius:5px}.pagination .page-item .page-link:hover{background:#e8505b;color:#fff}.pagination .page-item.active .page-link{background:#e8505b;color:#fff}.post-title:hover{text-decoration:underline}.post-meta{color:#999}.post-meta a{color:inherit}.post-meta a:hover{color:#e8505b}.content *{margin-bottom:20px}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{margin-bottom:10px}.content ol{padding-left:20px}.content ul{padding-left:0}.content ul li{position:relative;padding-left:20px;margin-bottom:15px;list-style-type:none}.content ul li::before{position:absolute;content:"\e71b";font-family:themify;font-size:14px;left:0;top:1px;color:#e8505b;transition:.3s ease}.content table{text-align:left;width:100%;max-width:100%;margin-bottom:1rem;border:1px solid #dee2e6}.content table th,.content table td{padding:.75rem;vertical-align:top;border:1px solid #dee2e6}.content table thead{background:#f3f3f3}.content table tbody{background:#f8f8f8}.content table tbody td{text-align:left!important}.content blockquote{padding:20px;background:#f8f8f8;border-left:3px solid #e8505b}.content blockquote p{margin-bottom:0;color:#222;font-style:italic!important}.content pre{padding:10px 20px;background:#f8f8f8}.content pre code{border:0;background:0 0;padding:0}.content a{color:#e8505b}.content a:hover{text-decoration:underline}.content code{padding:3px 5px;background:#f8f8f8;border:1px solid #acb9c4;border-radius:3px;color:#222}.social-icon a{height:45px;width:45px;border:1px solid #e8505b;border-radius:50%;line-height:45px;text-align:center;display:block;color:#e8505b}.social-icon a:hover{background:#e8505b;color:#fff}.nav-tab .nav-link{padding:15px;color:#666;border-radius:5px}.nav-tab .nav-link.active{color:#fff;background:#e8505b} ================================================ FILE: themes/northendlab/exampleSite/resources/_gen/assets/scss/scss/style.scss_b95b077eb505d5c0aff8055eaced30ad.json ================================================ {"Target":"scss/style.min.css","MediaType":"text/css","Data":{}} ================================================ FILE: themes/northendlab/layouts/404.html ================================================ {{ define "main" }}

404

Page Not Found!

{{ end }} ================================================ FILE: themes/northendlab/layouts/_default/article.html ================================================

{{ .Title | markdownify }}

{{.Summary}}

read more
================================================ FILE: themes/northendlab/layouts/_default/baseof.html ================================================ {{- partial "head.html" . -}} {{- partial "preloader.html" . -}} {{- partial "header.html" . -}} {{ if not .IsHome }}
{{ end }} {{- block "main" . }} {{- end }} {{- partial "footer.html" . -}} ================================================ FILE: themes/northendlab/layouts/_default/index.json ================================================ {{- $.Scratch.Add "index" slice -}} {{- range .Site.RegularPages -}} {{- $.Scratch.Add "index" (dict "title" .Title "tags" .Params.tags "categories" .Params.categories "contents" .Plain "permalink" .Permalink) -}} {{- end -}} {{- $.Scratch.Get "index" | jsonify -}} ================================================ FILE: themes/northendlab/layouts/_default/list.html ================================================ {{ define "main" }}

Posts are showing from {{ .Title }} categories

{{ $paginator := .Paginate (where .Data.Pages "Type" "post") }} {{ range $paginator.Pages }} {{ .Render "article" }} {{ end }}
{{"" | safeHTML }} {{ $paginator := .Paginator }} {{ $adjacent_links := 2 }} {{ $max_links := (add (mul $adjacent_links 2) 1) }} {{ $lower_limit := (add $adjacent_links 1) }} {{ $upper_limit := (sub $paginator.TotalPages $adjacent_links) }} {{ if gt $paginator.TotalPages 1 }} {{ end }} {{"" | safeHTML }}
{{ end }} ================================================ FILE: themes/northendlab/layouts/_default/single.html ================================================ {{ define "main" }}

{{ .Title | markdownify }}

{{ if .Params.Image }} {{ .Title | markdownify }} {{ end }}
{{ .Content }}
{{ if .Site.DisqusShortname}}
{{ template "_internal/disqus.html" . }}
{{ end }}
{{ end }} ================================================ FILE: themes/northendlab/layouts/author/single.html ================================================ {{ define "main" }}

{{ .Title | markdownify }}

{{ .Content }}

Post by author

{{ $name:= .Title }} {{ range where .Site.RegularPages "Params.author" $name }} {{ .Render "article" }} {{ end }}
{{ end }} ================================================ FILE: themes/northendlab/layouts/contact/list.html ================================================ {{ define "main" }}

{{ .Title | markdownify }}

{{ .Content }}
{{ end }} ================================================ FILE: themes/northendlab/layouts/index.html ================================================ {{ define "main" }} {{ if .Site.Params.cta.enable }}
...

{{ .Site.Params.cta.title | markdownify }}

{{ .Site.Params.cta.description | markdownify }}

{{ if .Site.Params.cta.button.enable }} {{ .Site.Params.cta.button.label }} {{ end }}
{{ end }}
{{ $paginator := .Paginate (where .Site.RegularPages "Type" "post") }} {{ range $paginator.Pages }} {{ .Render "article" }} {{ end }}
{{"" | safeHTML }} {{ $paginator := .Paginator }} {{ $adjacent_links := 2 }} {{ $max_links := (add (mul $adjacent_links 2) 1) }} {{ $lower_limit := (add $adjacent_links 1) }} {{ $upper_limit := (sub $paginator.TotalPages $adjacent_links) }} {{ if gt $paginator.TotalPages 1 }} {{ end }} {{"" | safeHTML }}
{{ end }} ================================================ FILE: themes/northendlab/layouts/partials/footer.html ================================================ {{ if .Site.Params.search.enable }} {{ end }} {{ "" | safeHTML }} {{ range .Site.Params.plugins.js}} {{ end }} {{ "" | safeHTML }} {{ $script := resources.Get "js/script.js" | minify}} {{ "" | safeHTML }} {{ with .Site.Params.google_analitycs_id }} {{ end }} ================================================ FILE: themes/northendlab/layouts/partials/head.html ================================================ {{ .Title }} {{ "" | safeHTML }} {{ with .Site.Params.author }} {{ end }} {{ hugo.Generator }} {{ "" | safeHTML }} {{ range .Site.Params.plugins.css }} {{ end }} {{ "" | safeHTML }} {{ $styles := resources.Get "scss/style.scss" | toCSS | minify }} {{ "" | safeHTML }} {{ with .Site.Params.google_tag_manager}} {{ end }} ================================================ FILE: themes/northendlab/layouts/partials/header.html ================================================ {{ "" | safeHTML }} {{ "" | safeHTML }} ================================================ FILE: themes/northendlab/layouts/partials/preloader.html ================================================ {{ if .Site.Params.preloader.enable }} {{ "" | safeHTML }}
{{ if ne .Site.Params.preloader.preloader "" }} preloader {{ end }}
{{ "" | safeHTML }} {{ end }} ================================================ FILE: themes/northendlab/layouts/search/list.html ================================================ {{ define "main" }}

Search result for

{{ end }} ================================================ FILE: themes/northendlab/layouts/tools/list.html ================================================ {{ define "main" }}
{{ range $index, $elemen:= .Site.Data.tools.tools }}
{{ range .tool}} {{ end }}
{{ end }}
{{ end }} ================================================ FILE: themes/northendlab/static/.htaccess ================================================ AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/x-javascript AddOutputFilterByType DEFLATE image/jpg AddOutputFilterByType DEFLATE image/png AddOutputFilterByType DEFLATE image/gif AddOutputFilterByType DEFLATE image/jpeg AddOutputFilterByType DEFLATE image/svg+xml ================================================ FILE: themes/northendlab/static/plugins/search/mark.js ================================================ /*!*************************************************** * mark.js v8.11.1 * https://markjs.io/ * Copyright (c) 2014–2018, Julian Kühnel * Released under the MIT license https://git.io/vwTVl *****************************************************/ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],t):e.Mark=t(e.jQuery)}(this,function(e){"use strict";e=e&&e.hasOwnProperty("default")?e.default:e;var t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},r=function(){function e(e,t){for(var n=0;n1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:5e3;n(this,e),this.ctx=t,this.iframes=r,this.exclude=i,this.iframesTimeout=o}return r(e,[{key:"getContexts",value:function(){var e=[];return(void 0!==this.ctx&&this.ctx?NodeList.prototype.isPrototypeOf(this.ctx)?Array.prototype.slice.call(this.ctx):Array.isArray(this.ctx)?this.ctx:"string"==typeof this.ctx?Array.prototype.slice.call(document.querySelectorAll(this.ctx)):[this.ctx]:[]).forEach(function(t){var n=e.filter(function(e){return e.contains(t)}).length>0;-1!==e.indexOf(t)||n||e.push(t)}),e}},{key:"getIframeContents",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},r=void 0;try{var i=e.contentWindow;if(r=i.document,!i||!r)throw new Error("iframe inaccessible")}catch(e){n()}r&&t(r)}},{key:"isIframeBlank",value:function(e){var t=e.getAttribute("src").trim();return"about:blank"===e.contentWindow.location.href&&"about:blank"!==t&&t}},{key:"observeIframeLoad",value:function(e,t,n){var r=this,i=!1,o=null,a=function a(){if(!i){i=!0,clearTimeout(o);try{r.isIframeBlank(e)||(e.removeEventListener("load",a),r.getIframeContents(e,t,n))}catch(e){n()}}};e.addEventListener("load",a),o=setTimeout(a,this.iframesTimeout)}},{key:"onIframeReady",value:function(e,t,n){try{"complete"===e.contentWindow.document.readyState?this.isIframeBlank(e)?this.observeIframeLoad(e,t,n):this.getIframeContents(e,t,n):this.observeIframeLoad(e,t,n)}catch(e){n()}}},{key:"waitForIframes",value:function(e,t){var n=this,r=0;this.forEachIframe(e,function(){return!0},function(e){r++,n.waitForIframes(e.querySelector("html"),function(){--r||t()})},function(e){e||t()})}},{key:"forEachIframe",value:function(t,n,r){var i=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){},a=t.querySelectorAll("iframe"),s=a.length,c=0;a=Array.prototype.slice.call(a);var u=function(){--s<=0&&o(c)};s||u(),a.forEach(function(t){e.matches(t,i.exclude)?u():i.onIframeReady(t,function(e){n(t)&&(c++,r(e)),u()},u)})}},{key:"createIterator",value:function(e,t,n){return document.createNodeIterator(e,t,n,!1)}},{key:"createInstanceOnIframe",value:function(t){return new e(t.querySelector("html"),this.iframes)}},{key:"compareNodeIframe",value:function(e,t,n){if(e.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_PRECEDING){if(null===t)return!0;if(t.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_FOLLOWING)return!0}return!1}},{key:"getIteratorNode",value:function(e){var t=e.previousNode();return{prevNode:t,node:null===t?e.nextNode():e.nextNode()&&e.nextNode()}}},{key:"checkIframeFilter",value:function(e,t,n,r){var i=!1,o=!1;return r.forEach(function(e,t){e.val===n&&(i=t,o=e.handled)}),this.compareNodeIframe(e,t,n)?(!1!==i||o?!1===i||o||(r[i].handled=!0):r.push({val:n,handled:!0}),!0):(!1===i&&r.push({val:n,handled:!1}),!1)}},{key:"handleOpenIframes",value:function(e,t,n,r){var i=this;e.forEach(function(e){e.handled||i.getIframeContents(e.val,function(e){i.createInstanceOnIframe(e).forEachNode(t,n,r)})})}},{key:"iterateThroughNodes",value:function(e,t,n,r,i){for(var o,a=this,s=this.createIterator(t,e,r),c=[],u=[],l=void 0,h=void 0;void 0,o=a.getIteratorNode(s),h=o.prevNode,l=o.node;)this.iframes&&this.forEachIframe(t,function(e){return a.checkIframeFilter(l,h,e,c)},function(t){a.createInstanceOnIframe(t).forEachNode(e,function(e){return u.push(e)},r)}),u.push(l);u.forEach(function(e){n(e)}),this.iframes&&this.handleOpenIframes(c,e,n,r),i()}},{key:"forEachNode",value:function(e,t,n){var r=this,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){},o=this.getContexts(),a=o.length;a||i(),o.forEach(function(o){var s=function(){r.iterateThroughNodes(e,o,t,n,function(){--a<=0&&i()})};r.iframes?r.waitForIframes(o,s):s()})}}],[{key:"matches",value:function(e,t){var n="string"==typeof t?[t]:t,r=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector;if(r){var i=!1;return n.every(function(t){return!r.call(e,t)||(i=!0,!1)}),i}return!1}}]),e}(),a=function(){function e(t){n(this,e),this.ctx=t,this.ie=!1;var r=window.navigator.userAgent;(r.indexOf("MSIE")>-1||r.indexOf("Trident")>-1)&&(this.ie=!0)}return r(e,[{key:"log",value:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"debug",r=this.opt.log;this.opt.debug&&"object"===(void 0===r?"undefined":t(r))&&"function"==typeof r[n]&&r[n]("mark.js: "+e)}},{key:"escapeStr",value:function(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}},{key:"createRegExp",value:function(e){return"disabled"!==this.opt.wildcards&&(e=this.setupWildcardsRegExp(e)),e=this.escapeStr(e),Object.keys(this.opt.synonyms).length&&(e=this.createSynonymsRegExp(e)),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),this.opt.diacritics&&(e=this.createDiacriticsRegExp(e)),e=this.createMergedBlanksRegExp(e),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.createJoinersRegExp(e)),"disabled"!==this.opt.wildcards&&(e=this.createWildcardsRegExp(e)),e=this.createAccuracyRegExp(e)}},{key:"createSynonymsRegExp",value:function(e){var t=this.opt.synonyms,n=this.opt.caseSensitive?"":"i",r=this.opt.ignoreJoiners||this.opt.ignorePunctuation.length?"\0":"";for(var i in t)if(t.hasOwnProperty(i)){var o=t[i],a="disabled"!==this.opt.wildcards?this.setupWildcardsRegExp(i):this.escapeStr(i),s="disabled"!==this.opt.wildcards?this.setupWildcardsRegExp(o):this.escapeStr(o);""!==a&&""!==s&&(e=e.replace(new RegExp("("+this.escapeStr(a)+"|"+this.escapeStr(s)+")","gm"+n),r+"("+this.processSynomyms(a)+"|"+this.processSynomyms(s)+")"+r))}return e}},{key:"processSynomyms",value:function(e){return(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),e}},{key:"setupWildcardsRegExp",value:function(e){return(e=e.replace(/(?:\\)*\?/g,function(e){return"\\"===e.charAt(0)?"?":""})).replace(/(?:\\)*\*/g,function(e){return"\\"===e.charAt(0)?"*":""})}},{key:"createWildcardsRegExp",value:function(e){var t="withSpaces"===this.opt.wildcards;return e.replace(/\u0001/g,t?"[\\S\\s]?":"\\S?").replace(/\u0002/g,t?"[\\S\\s]*?":"\\S*")}},{key:"setupIgnoreJoinersRegExp",value:function(e){return e.replace(/[^(|)\\]/g,function(e,t,n){var r=n.charAt(t+1);return/[(|)\\]/.test(r)||""===r?e:e+"\0"})}},{key:"createJoinersRegExp",value:function(e){var t=[],n=this.opt.ignorePunctuation;return Array.isArray(n)&&n.length&&t.push(this.escapeStr(n.join(""))),this.opt.ignoreJoiners&&t.push("\\u00ad\\u200b\\u200c\\u200d"),t.length?e.split(/\u0000+/).join("["+t.join("")+"]*"):e}},{key:"createDiacriticsRegExp",value:function(e){var t=this.opt.caseSensitive?"":"i",n=this.opt.caseSensitive?["aàáảãạăằắẳẵặâầấẩẫậäåāą","AÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ","cçćč","CÇĆČ","dđď","DĐĎ","eèéẻẽẹêềếểễệëěēę","EÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ","iìíỉĩịîïī","IÌÍỈĨỊÎÏĪ","lł","LŁ","nñňń","NÑŇŃ","oòóỏõọôồốổỗộơởỡớờợöøō","OÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ","rř","RŘ","sšśșş","SŠŚȘŞ","tťțţ","TŤȚŢ","uùúủũụưừứửữựûüůū","UÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ","yýỳỷỹỵÿ","YÝỲỶỸỴŸ","zžżź","ZŽŻŹ"]:["aàáảãạăằắẳẵặâầấẩẫậäåāąAÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ","cçćčCÇĆČ","dđďDĐĎ","eèéẻẽẹêềếểễệëěēęEÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ","iìíỉĩịîïīIÌÍỈĨỊÎÏĪ","lłLŁ","nñňńNÑŇŃ","oòóỏõọôồốổỗộơởỡớờợöøōOÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ","rřRŘ","sšśșşSŠŚȘŞ","tťțţTŤȚŢ","uùúủũụưừứửữựûüůūUÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ","yýỳỷỹỵÿYÝỲỶỸỴŸ","zžżźZŽŻŹ"],r=[];return e.split("").forEach(function(i){n.every(function(n){if(-1!==n.indexOf(i)){if(r.indexOf(n)>-1)return!1;e=e.replace(new RegExp("["+n+"]","gm"+t),"["+n+"]"),r.push(n)}return!0})}),e}},{key:"createMergedBlanksRegExp",value:function(e){return e.replace(/[\s]+/gim,"[\\s]+")}},{key:"createAccuracyRegExp",value:function(e){var t=this,n=this.opt.accuracy,r="string"==typeof n?n:n.value,i="";switch(("string"==typeof n?[]:n.limiters).forEach(function(e){i+="|"+t.escapeStr(e)}),r){case"partially":default:return"()("+e+")";case"complementary":return"()([^"+(i="\\s"+(i||this.escapeStr("!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~¡¿")))+"]*"+e+"[^"+i+"]*)";case"exactly":return"(^|\\s"+i+")("+e+")(?=$|\\s"+i+")"}}},{key:"getSeparatedKeywords",value:function(e){var t=this,n=[];return e.forEach(function(e){t.opt.separateWordSearch?e.split(" ").forEach(function(e){e.trim()&&-1===n.indexOf(e)&&n.push(e)}):e.trim()&&-1===n.indexOf(e)&&n.push(e)}),{keywords:n.sort(function(e,t){return t.length-e.length}),length:n.length}}},{key:"isNumeric",value:function(e){return Number(parseFloat(e))==e}},{key:"checkRanges",value:function(e){var t=this;if(!Array.isArray(e)||"[object Object]"!==Object.prototype.toString.call(e[0]))return this.log("markRanges() will only accept an array of objects"),this.opt.noMatch(e),[];var n=[],r=0;return e.sort(function(e,t){return e.start-t.start}).forEach(function(e){var i=t.callNoMatchOnInvalidRanges(e,r),o=i.start,a=i.end;i.valid&&(e.start=o,e.length=a-o,n.push(e),r=a)}),n}},{key:"callNoMatchOnInvalidRanges",value:function(e,t){var n=void 0,r=void 0,i=!1;return e&&void 0!==e.start?(r=(n=parseInt(e.start,10))+parseInt(e.length,10),this.isNumeric(e.start)&&this.isNumeric(e.length)&&r-t>0&&r-n>0?i=!0:(this.log("Ignoring invalid or overlapping range: "+JSON.stringify(e)),this.opt.noMatch(e))):(this.log("Ignoring invalid range: "+JSON.stringify(e)),this.opt.noMatch(e)),{start:n,end:r,valid:i}}},{key:"checkWhitespaceRanges",value:function(e,t,n){var r=void 0,i=!0,o=n.length,a=t-o,s=parseInt(e.start,10)-a;return(r=(s=s>o?o:s)+parseInt(e.length,10))>o&&(r=o,this.log("End range automatically set to the max value of "+o)),s<0||r-s<0||s>o||r>o?(i=!1,this.log("Invalid range: "+JSON.stringify(e)),this.opt.noMatch(e)):""===n.substring(s,r).replace(/\s+/g,"")&&(i=!1,this.log("Skipping whitespace only range: "+JSON.stringify(e)),this.opt.noMatch(e)),{start:s,end:r,valid:i}}},{key:"getTextNodes",value:function(e){var t=this,n="",r=[];this.iterator.forEachNode(NodeFilter.SHOW_TEXT,function(e){r.push({start:n.length,end:(n+=e.textContent).length,node:e})},function(e){return t.matchesExclude(e.parentNode)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},function(){e({value:n,nodes:r})})}},{key:"matchesExclude",value:function(e){return o.matches(e,this.opt.exclude.concat(["script","style","title","head","html"]))}},{key:"wrapRangeInTextNode",value:function(e,t,n){var r=this.opt.element?this.opt.element:"mark",i=e.splitText(t),o=i.splitText(n-t),a=document.createElement(r);return a.setAttribute("data-markjs","true"),this.opt.className&&a.setAttribute("class",this.opt.className),a.textContent=i.textContent,i.parentNode.replaceChild(a,i),o}},{key:"wrapRangeInMappedTextNode",value:function(e,t,n,r,i){var o=this;e.nodes.every(function(a,s){var c=e.nodes[s+1];if(void 0===c||c.start>t){if(!r(a.node))return!1;var u=t-a.start,l=(n>a.end?a.end:n)-a.start,h=e.value.substr(0,a.start),f=e.value.substr(l+a.start);if(a.node=o.wrapRangeInTextNode(a.node,u,l),e.value=h+f,e.nodes.forEach(function(t,n){n>=s&&(e.nodes[n].start>0&&n!==s&&(e.nodes[n].start-=l),e.nodes[n].end-=l)}),n-=l,i(a.node.previousSibling,a.start),!(n>a.end))return!1;t=a.end}return!0})}},{key:"wrapMatches",value:function(e,t,n,r,i){var o=this,a=0===t?0:t+1;this.getTextNodes(function(t){t.nodes.forEach(function(t){t=t.node;for(var i=void 0;null!==(i=e.exec(t.textContent))&&""!==i[a];)if(n(i[a],t)){var s=i.index;if(0!==a)for(var c=1;c 0){ populateResults(result); }else{ $('#search-results').append("

No Search Found

"); } }); } function populateResults(result){ $.each(result,function(key,value){ var contents= value.item.contents; var snippet = ""; var snippetHighlights=[]; var tags =[]; if( fuseOptions.tokenize ){ snippetHighlights.push(searchQuery); }else{ $.each(value.matches,function(matchKey,mvalue){ if(mvalue.key == "tags" || mvalue.key == "categories" ){ snippetHighlights.push(mvalue.value); }else if(mvalue.key == "contents"){ start = mvalue.indices[0][0]-summaryInclude>0?mvalue.indices[0][0]-summaryInclude:0; end = mvalue.indices[0][1]+summaryInclude