Skip to content

Commit e7adb66

Browse files
committed
Added url field templating support
1 parent f00b895 commit e7adb66

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

src/components/Result.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ function Result({ fields, title, url }) {
1414
{url && (
1515
<a
1616
href={url}
17+
target="_blank"
1718
className="result__title"
1819
dangerouslySetInnerHTML={{ __html: title }}
1920
/>

src/containers/Results.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@ function getUrlField() {
1919
return config.urlField;
2020
}
2121

22+
function getUrlFieldTemplate() {
23+
return config.urlFieldTemplate;
24+
}
25+
2226
function getTitle(result) {
2327
const titleField = getTitleField();
2428

@@ -32,6 +36,23 @@ function getTitle(result) {
3236
function getUrl(result) {
3337
const urlField = getUrlField();
3438
if (urlField) return result.getRaw(urlField);
39+
40+
const urlFieldTemplate = getUrlFieldTemplate();
41+
42+
if (urlFieldTemplate) {
43+
const fieldValueReplacementRegex = /{{([^}]*)}}/g;
44+
let compiledUrlField = urlFieldTemplate;
45+
let match = fieldValueReplacementRegex.exec(urlFieldTemplate);
46+
47+
while (match != null) {
48+
compiledUrlField = compiledUrlField.replace(
49+
match[0],
50+
result.getRaw(match[1])
51+
);
52+
match = fieldValueReplacementRegex.exec(urlFieldTemplate);
53+
}
54+
return compiledUrlField;
55+
}
3556
}
3657

3758
/*

0 commit comments

Comments
 (0)