发表在< / div >< / div >

我们已经搬到freeCodeCamp.org/news

与盖茨比如何创建一个可搜索的日志

你所有的开发人员做笔记的需求

盖茨比

步骤1:创建一个新的盖茨比网站使用美丽的“茱莉亚”模板

盖茨比新<站点名> https://github.com/niklasmtj/gatsby-starter-julia

步骤2:添加日志记录

推荐- - - - - -
标题:“任何你想要的标题”
日期:“2019-05-010”
草案:假
路径:“/ logs / some-slug-for-the-file”
标签:测试、文档
推荐- - - - - -

#星期一,2019年5月6日
*添加文档....

步骤2:遵循减价的盖茨比文档创建页面

保持它的清洁

{
解决:“gatsby-source-filesystem”,
选择:{
名称:“图像”,
路径:“$ {__dirname} / src /图像”,
},
},
{
解决:“gatsby-source-filesystem”,
选择:{
名称:“markdown-pages”,
路径:“$ {__dirname} / src /内容”,
},
},

步骤3:添加搜索

配置

{
解决:“@gatsby-contrib / gatsby-plugin-elasticlunr-search ',
选择:{
/ /字段索引
字段:[“标题”,“标签”,“html”),
解析器:{
MarkdownRemark: {
标题:节点= > node.frontmatter.title,
标签:节点= > node.frontmatter.tags,
= > node.frontmatter.path路径:节点,
html:节点= > node.internal.content,
},
},
},
},

添加一个搜索栏

进口的反应从“反应”
从“盖茨比”进口{graphql, StaticQuery}
从“。/进口搜索搜索”

出口违约()= > {
回报(
< StaticQuery
查询= {graphql '
查询SearchIndexQuery {
siteSearchIndex {
指数
}
}
'}
渲染= = >{数据(
<搜索searchIndex = {data.siteSearchIndex.index} / >
)}
/ >
)
}
进口的反应,{组件}从“反应”
从“elasticlunr”进口{指数}
从“盖茨比”进口{链接}
从“@emotion /进口样式风格”
出口的默认类搜索扩展组件{
状态= {
查询:' ',
结果:[]
}

呈现(){
回报(
< div >
< input type = " text " value = {this.state。查询}onChange = {。搜索}/ >
< ul >
{this.state.results。地图(页面= > (
<李关键= {page.id} >
<链接= {" + page.path} > {page.title} < /链接>
{':' + page.tags}
李< / >
)}
< / ul >
< / div >
)
}

getOrCreateIndex = () = > {
返回this.index
吗?this.index
:/ /创建一个弹性lunr指数和水合物graphql查询结果
Index.load (this.props.searchIndex)
}

搜索= evt = > {
const查询= evt.target.value
this.index= this.getOrCreateIndex()
this.setState ({
查询,
/ /查询的索引与搜索字符串id的[]
结果:this.index
.search(查询,{扩大:真})
/ /地图/每个ID和返回完整的文档
. map (({ref}) = > {
返回this.index.documentStore.getDoc (ref)
}),
})
}
}

步骤4:添加安全

const isBrowser = () = > typeof窗口! = =“定义”
const isAuthenticated = isBrowser () & & window.localStorage.getItem(“身份验证”);
[…]{isAuthenticated ?< SearchBar / >: < div >你不是琥珀色,所以你不要看她的日志。< / div >}

好处:与Netlify部署

- - -

- - -

我们已经搬到https://freecodecamp.org/news,每周发布大量的教程。看到你在那里。

得到了媒介的应用betway娱乐官网

一个按钮“App Store下载”说,如果点击它会使你的iOS应用程序商店
说一个按钮上,谷歌玩,如果点击它会使你的谷歌商店
琥珀威尔基

软件开发人员,主要是Ruby和Javascript。瑜伽、旅行爱好者。我所有的照片。我不阅读注释,试试我在Twitter上。

Baidu