首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

用 Gatsby 创建一个博客

'gatsby-plugin-catch-links', 'gatsby-plugin-react-helmet', ], } 除了使用 yarn install 和编辑配置文件之外...例如,访问转换后的 HTML 我们会通过 data.markdownRemark.html 去拿到数据。 当然,我们的数据结构是我们的Markdown文件开始时提供的 frontmatter。...每一次我们构建 Gatsby 时, createPage 将被调用,Gatsby 将会创建一个静态的 HTML 文件路径根据我们帖子的前面专门写的 frontmatter。...例如,我们创造一个 src/pages/tags.js 文件, http://localhost:8000/tags/ 将可访问。...添加一个 tag 列表和 tag 查询页 提示: gatsby-node.js 文件中的 createPages API 在这里很有用,还有之前的 frontmatter 特定的博客文章之间添加导航(

2.5K30

如何利用机器学习和Gatsby.js创建假新闻网站​

Gatsby.js之前,首先需要安装Node。这是一个开源的JavaScript运行时环境,用于浏览器之外执行JavaScript代码。使用Node还可以得到npm,它表示“包管理器”。...gatsby-node.js 此文件用于实现api。这些api可以使用GraphQL从数据层中获取数据。处理程序化页面生成时,我们将更深入地研究这个文件的内容。...我使用谷歌Colaboratory,它可以浏览器中运行Python代码并可以直接访问谷歌Driver。 首先,我需要配置我的谷歌Drive,这样我可以把文章保存到谷歌Drive中。 ?...g, " ") }) } } exports.createPages = async ({ graphql, actions }) => { const { createPage.../work.js'), context: { slug: node.fields.slug, }, }) }) } gatsby-node.js

4.5K60

The Clean Architecture in PHP 读书笔记(二)

本书不会去按个介绍23个模式,这样去介绍的书籍太多了,而且本书也没有那么多篇幅去按个讲,但是这些都是再进行展开的基础,因此我们会介绍一些最近本的概念: Factory:负责生产对象,类似于语言本省提供的new关键字,C...Repository:不是GoF中提出的设计模式,其类似于一个仓库,负责数据的存储和获取 Adapter:适配器,故名思议就是将接口实现转换 Strategy:目的是灵活性,将一个或一组行为封装起来,方便的进行替换...Testable code.由于关注点分离了,方便测试,可以单独进行创建逻辑的测试 Easy to change.创建逻辑只一处,方便修改 Static Factories class CustomerFactory...return $customer; } } $customer = CustomerFactory::createCustomer('ACME Corp'); 静态工厂,通过一个static方法访问...Repository Pattern 仓储模式:该模式Eric Evan的神书:Domain-Driven Design: Tackling Complexity in the Heart of Software

37140

Atlassian Confluence 漏洞被利用来破坏 Jenkins 项目服务器

Jenkins——一种流行的开源自动化服务器软件——的维护者在身份不明的威胁行为者通过利用最近披露的 Atlassian Confluence 服务中的一个漏洞安装加密货币矿工,获得了对其服务器的访问权限后...这一披露是美国网络司令部针对影响 Atlassian Confluence 部署的现已修补的关键安全漏洞在野外正在进行的大规模利用企图。...该漏洞被追踪为 CVE-2021-26084(CVSS 评分:9.8),与 OGNL(对象图导航语言)注入漏洞有关,特定情况下,该漏洞可被利用在 Confluence 服务器或数据中心实例上执行任意代码...根据网络安全公司 Censys 的数据,该公司是一家用于查找互联网设备的搜索引擎,该漏洞的详细信息于 8 月 25 日公开之前,发现了大约 14,637 台暴露和易受攻击的 Confluence 服务器...SpaceKey=x", "/pages/doenterpagevariables.action", "/pages/createpage.action?

76440

React组件设计实践总结02 - 组件的组织

例如: Bar 可以访问 Foo, 但不能再向下访问它的细节, 即不能访问../Foo/types.ts, 但可以访问它的出口文件...../Foo src/types.ts 不能访问 containers/HomePage LoginPage 和访问 HomePage LoginPage 可以访问 utils/sdk ---- 2️⃣ Named...当你不清楚当前文件的目录上下文时, 你不知道具体模块在哪; 即使你知道当前文件的位置, 你也需要跟随导入路径目录树中向上追溯能定位到具体模块. 所以这种相对路径是比较反人类的....CreatePage 的特点: 表单组件使用受控模式, 本身不会存储表单的状态....另外表单之间的状态可能是联动的 状态需要在 CreatePage 和 PreviewPage 之间共享 需要对表单进行统一校验 草稿保存 由于需要在 CreatePage 和 PreviewPage 中共享数据

1.9K31

3. 「uniapp 如何支持微信小程序环境开发」配置项简化到可以让你一盔全貌之:loader + plugin

原因见之前的系列文章webpack源码分析」模块构建之解析_source获取dependencies 所以就有了这样的一个loader,来将.vue文件中引用的组件形式进行替换。...如下: app.json和各页面组件的json文件基于该文件生成,构建过程中的唯一变化是会修改usingComponents 这个是在上一部分解析组件引用的情况时会保存下来。...分析组件依赖,替换组件为动态导入,更新json.usingComponents } else { const options = loaderUtils.getOptions(this.../runtime/mp-vue/mp.runtime.esm.js") } }, 因为bridge这个运行时暴露了将createApp、createPage、createComponent直接挂载到了...: [mpRuntime, 'createPage'], uni: [mpRuntime, 'default'] }) 总结 重点是 vue 文件如何转换为小程序组件结构

1.8K41

Android 使用PDF.js浏览pdf的方法示例

file=" + pdfUrl); 这种方式和使用google docs是差不多一样的,重要的是国内可以直接访问,但是会遇到跨域的问题。 方式二: 下载PDF.js放到assets目录下 ?...如果pdf文件不能跨域访问的话可以使用这种方式,先把文件下载到本地然后传入本地文件路径预览pdf: mWebView.loadUrl("file:///android_asset/pdfjs/web/...https://unpkg.com/pdfjs-dist@1.9.426/cmaps/'; PDFJS.cMapPacked = true; var pdfDoc = null; function createPage...pdfDoc.getPage(num).then(function (page) { var viewport = page.getViewport(2.0); var canvas = createPage...三 遇到的问题 直接实现预览的时候遇到显示模糊的问题,通过增大scale系数解决 var viewport = page.getViewport(2.0);//设置为2.0 pdf内容显示不完整,通过设置

8K10

盲SSRF利用链术语表

这是贾斯汀 · 加德纳推特上引发的一次有趣的讨论: 如果你能够获得内部资源,那么可以执行许多潜在的利用链来证明其影响。...这是验证SSRF漏洞是否可以访问内部网络或应用程序的有效方法,也是验证内部网络上是否存在某些软件的有效方法。你还可以使用SSRF检测器访问内部网络中更敏感的部分,这取决于它位于何处。...云环境中,我们经常看到指向内部VPC中的主机的elb。根据资产所在VPC的不同,有可能访问同一VPC内的其他主机。...还可以通过这种方法已确定的所有“内部”主机上喷洒所有盲SSRF Payloads。这一般情况下是有效的。...Cmd":["/usr/bin/tail", "-f", "1234", "/dev/null"], "Binds": [ "/:/mnt" ], "Privileged": true} 将alpine替换为你希望

1.9K20

干货 | 携程门票H5转小程序实践

我们团队一直致力于推进react多端一致,进入小程序一致性研发工作之前,RN和web已经实现了大部分的跨端工作。...二、各个跨端转换框架对比 结合当时小程序开发场景以及内部的一些限制,跨端框架需要满足“能够与原生项目混合”的要求,主要包括: 原生项目中使用转换后的页面 原生项目的分包中运行完整的转后的项目 原生项目中使用转换后的自定义组件...直接访问React.api就能得到磨平后的API。 按需注入API补丁包则是刚才功能的更高级形式,目的是让体积更加小。 四、存在的问题 4.1 React代码到小程序代码的大致过程 ?...}) ); }, classUid:"c70258" }, {} ); Page(_ReactWX2.default.createPage...5.2.2 替换动态变量 JSX 中的动态变量无法直接转换成符合小程序的语法,需要通过将动态变量转换为可监测的变量来实现 JSX 到小程序 View 层的转换。

1.7K50

如何用canvas实现一个富文本编辑器

this.pageCanvasCtxList = [] // 页面canvas绘图上下文列表 } } 接下来添加一个创建页面的方法: class CanvasEditor { // 创建页面 createPage...page) { this.createPage() } this.renderPagePaddingIndicators...计算光标坐标 先给canvas绑定mousedown事件,可以创建页面的时候绑定: class CanvasEditor { // 新增了要创建的页面索引参数 createPage(pageIndex...接下来是替换,如果存在选区时我们输入文字,输入的文字会替换掉选区的文字,实现上我们可以直接删除: onInput(e) { // ......支持有限的文字样式,支持光标,支持选区,当然,这是最基本最基本的功能,随便想想就知道还有很多功能没实现,比如复制、粘贴、方向键切换光标位置、拖拽选区到其他位置、前进后退等,以及支持图片、表格、链接、代码块等文本之外的元素

1.2K40

小程序 boilerplate cli 工具教程

& cd mywxapp-tmpl && touch index1.js npm init 04.png 思路 我希望这个命令行工具使用起来是这样的: 05.png 之前没有写过 cli 工具,所以写下思路后有了三个疑问...06.png 上文也提到了,我对模板位置的存储有两个方向的规划,最后选择的是将模板直接托管访问到的 git 仓库中。想到小程序框架迭代迅速,模板可能会需要跟着框架一起进化。...也可以看出 boilerplate 生成器本身的功能很简单,如果把模板封装进去,会增加代码量,而且工具更新应该是修复 bug、新增功能这样的情况下,模板的更新不属于此范围。分开管理更合理。...data.pages.push('pages/' + name + '/' + name); } writeFile(configFile); }); } // 创建页面 function createPage...npm publish --access public 总结 终于不用一新建项目就看着祖国江山一片红的 console 了 ╰( ᐖ╰)≡(╯ᐛ )╯ ,关于为什么我的项目模板是这样规划的,请戳这里 写平常的

2.4K30

Vim中查找替换及正则表达式的使用详解

:1,10s/from/to/ 表示第1到第10行(包含第1,第10行)之间搜索替换; :10s/from/to/ 表示只第10行搜索替换; :%s/from/to/ 表示在所有行中搜索替换; 1,...如[a-z0-9]匹配小写字母和数字 [^abc] 匹配除方括号中字符之外的任意字符 \d 匹配阿拉伯数字,等同于[0-9] \D 匹配阿拉伯数字之外的任意字符,等同于[^0-9] \x 匹配十六进制数字...,等同于[0-9A-Fa-f] \X 匹配十六进制数字之外的任意字符,等同于[^0-9A-Fa-f] \l 匹配[a-z] \L 匹配[^a-z] \u 匹配[A-Z] \U 匹配[^A-Z] \w 匹配单词字母...,等同于[0-9A-Za-z_] \W 匹配单词字母之外的任意字符,等同于[^0-9A-Za-z_] \t 匹配字符 \s 匹配空白字符,等同于[\t] \S 匹配非空白字符,等同于[^\t]...正则式中以\(和\)括起来的正则表达式,在后面使用的时候可以用\1、\2等变量来访问\(和\)中的内容。

5.7K10

推广位的设计思路

首相要明确的是大型网站的流量是比较大的,所以保障服务不因流量大而宕机就比较重要,除此之外我们期望广告位能够指定的时间内进行展示。考虑到流量和灵活配置的问题,我们就需要采用内存型的数据库redis。...针对前两种形式,基本针对具体的广告位实行新旧替换即可。...而针对滚动图册的形式,我们则需要做到灵活上下线且对未下线的广告位零影响,除此之外读多写少,因此针对图册推广位的子广告上线和下线可以采用现有效广告位的全部替换。...但是考虑到推广位往往是长久不变的,那么针对每个请求去访问redis就变成一种很浪费资源的情况,如果流量很大,那么redis往往会成为瓶颈。因此代码层面上减少对redis的无效访问就成为关键。...我们可以容纳10分钟的显示延迟,因此我们可以代码层面针对时间做一些操作,比如每次访问redis之后,就将其结果和相应的时间缓存在静态变量中,再次访问该广告则先判断时间是否10分钟以内,然后从静态变量中获取或者通过

36410

面试官:Java中对象都存放在堆中吗?你知道逃逸分析?

逃逸分析 逃逸分析(Escape Analysis)是一种确定对象的引用动态范围的分析方法,说人话就是:分析程序的哪些地方可以访问到对象的引用。...当一个对象方法中被分配时,该对象的引用可能逃逸到其它执行线程中,或是返回到方法的调用者。...如果对象的引用存储静态变量或者其它数据结构中,因为静态变量是可以在当前方法之外访问到,此时对象的引用也发生了“逃逸”。...栈上分配(Stack Allocations) 如果一个对象不会逃逸出线程之外,那让这个对象栈上分配内存将会是一个很不错的主意,对象所占用的内存空间就可以随栈帧出栈而销毁。...如果把一个Java对象拆散,根据程序访问的情况,将其用到的成员变量恢复为基本类型来访问,这个过程就称为标量替换

51930
领券