索引参考
<script src=“https://gist.github.com/dominique-pfister/92cb67b6f95e1edee6a7d6508b124039.js”></script>
include和exclude部分规定了要索引的文档。 包括但未排除的所有内容都将编制索引。 双星号**与前缀 包含 前缀下的所有内容匹配,因此在上例中,路径/documents也被编入索引。 如果您完全忽略该部分,则 所有内容 都将编制索引。
select属性是一个CSS选择器,可从文档中获取与HTML元素匹配的 所有。 索引器会将您的选择器应用于HTML标记,而不是应用于渲染的DOM,因此您必须相应地编写它们。 (在要从中提取信息的页面上,右键单击 — >查看页面Source,可查看索引器将处理的确切HTML)。
如果您只想返回 第一个 匹配元素,请使用selectFirst而不是select:
first-img:
selectFirst: img
value: attribute(el, "src")
要验证输入的CSS选择器是否选择了所需内容,您可以使用aem cli - aem up -–print-index,导航到选择器应提取有意义的值的页面,然后检查控制台。 cli将使用本地文件系统中的helix-query.yaml文件,并将打印提取的值;如果找不到所查找的信息,则打印空字符串。
aem up --print-index
...
info: Index information for /my/test/page
info: Index: mysite
info: author: "John Smith"
请注意,并非所有CSS选择器都受支持。 在内部,我们使用名为hast-util-select的库,支持的选择器列表可在此处找到: https://github.com/syntax-tree/hast-util-select#support
value或values属性包含要应用于所有选定HTML元素的表达式。 当您需要字符串时,首选属性名称value,而values则会为您提供一个包含找到的所有匹配项的数组。 表达式可以包含函数和变量的组合:
innerHTML(el)
返回元素的HTML内容。
textContent(el)
返回所选元素的文本内容及其所有后代。
attribute(el, name)
返回具有指定元素名称的属性的值。
匹配(el, re)
匹配包含括号的正则表达式,以捕获传递的元素中的项目。 在上面的作者示例中,所选<p>元素的实际内容可能包含by John Smith,因此它将捕获by 之后的所有内容。
字符(el、start、end)
返回给定元素或文本从start到end的子字符串。 如果start或end为负数,则它们将处理从文本结尾开始计数的位置。 end是可选的,默认为文本的长度。
单词数(el、start、end)
这对Teaser很有用,可从HTML元素中选择一系列单词。
replace(el, substr, newSubstr)
使用替换内容替换文本中第一次出现的子字符串。
replaceAll(el, substr, newSubstr)
将文本中所有出现的子字符串替换为替换内容。
parseTimestamp(el,格式)
解析以自定义格式的字符串形式提供的时间戳,并将其值作为自1970年1月1日以来的秒数返回。
dateValue(el,格式)
解析以字符串形式指定的时间戳,并将其值作为序列号返回,其中1900年1月1日是序列号1。 有关详细信息,请参阅DATEVALUE函数
el
返回由select属性选择的HTML元素。
路径
返回正在编制索引的HTML文档的路径。
标头[名称]
返回在获取HTML文档时,具有指定名称的HTTP响应标头的值。
1 helix-query.yaml的完整定义在以下位置提供: https://github.com/adobe/helix-shared/blob/main/docs/indexconfig.md