From 7939b70509ffc802d92676031f26dd26d7b9d34e Mon Sep 17 00:00:00 2001 From: Utsob Roy Date: Fri, 6 Jan 2023 19:30:50 +0600 Subject: [PATCH] title support throught the garden (#33) --- src/helpers/linkUtils.js | 4 ++-- src/site/_data/filetree.js | 11 ++++++++--- src/site/_includes/layouts/note.njk | 6 +++--- src/site/index.11tydata.js | 2 +- src/site/lunr.njk | 2 +- 5 files changed, 15 insertions(+), 10 deletions(-) diff --git a/src/helpers/linkUtils.js b/src/helpers/linkUtils.js index 3b386d9..6f6943d 100644 --- a/src/helpers/linkUtils.js +++ b/src/helpers/linkUtils.js @@ -45,7 +45,7 @@ function getBacklinks(data) { let preview = noteContent.slice(0, 240); backlinks.push({ url: otherNote.url, - title: otherNote.data.page.fileSlug, + title: otherNote.data.title || otherNote.data.page.fileSlug, preview, id: counter++ }) @@ -90,7 +90,7 @@ function getOutboundLinks(data, isHome=false){ uniqueLinks.add(outboundNote.url); return { url: outboundNote.url, - title: outboundNote.data.page.fileSlug, + title: outboundNote.data.title || outboundNote.data.page.fileSlug, id: counter++, }; } else { diff --git a/src/site/_data/filetree.js b/src/site/_data/filetree.js index 902c2b4..1e2fe9a 100644 --- a/src/site/_data/filetree.js +++ b/src/site/_data/filetree.js @@ -31,14 +31,18 @@ module.exports = async () => { return orderedTree; } -function getPermalink(path) { +function getPermalinkAndName(path) { let permalink = "/" + let name = key.replace(".md", ""); try { const file = fs.readFileSync(`${path}`, 'utf8'); const frontMatter = matter(file); if (frontMatter.data.permalink) { permalink = frontMatter.data.permalink; } + if (frontMatter.data.title){ + name = frontMatter.data.title + } } catch { //ignore } @@ -52,8 +56,9 @@ function populateWithPermalink(tree) { const isNote = tree[key].path.endsWith(".md"); tree[key].isNote = isNote; if (isNote) { - tree[key].permalink = getPermalink(tree[key].path); - tree[key].name = key.replace(".md", ""); + let { permalink, name } = getPermalinkAndName(tree[key].path); + tree[key].permalink = permalink + tree[key].name = name } } else { tree[key].isFolder = true; diff --git a/src/site/_includes/layouts/note.njk b/src/site/_includes/layouts/note.njk index 8114454..7686ab0 100644 --- a/src/site/_includes/layouts/note.njk +++ b/src/site/_includes/layouts/note.njk @@ -1,11 +1,11 @@ --- -title: "/{{ page.fileSlug }}/" +title: "/{% if title %}{{ title }}{% else %}{{ page.fileSlug }}{% endif %}/" permalink: "notes/{{ page.fileSlug | slugify }}/" --- - {{ page.fileSlug }} + {% if title %}{{ title }}{% else %}{{ page.fileSlug }}{% endif %} {%include "components/pageheader.njk"%} @@ -23,7 +23,7 @@ permalink: "notes/{{ page.fileSlug | slugify }}/"
{% if settings.dgShowInlineTitle === true %} -

{{ page.fileSlug }}

+

{% if title %}{{ title }}{% else %}{{ page.fileSlug }}{% endif %}

{% endif %} {{ content | link | highlight | safe}}
diff --git a/src/site/index.11tydata.js b/src/site/index.11tydata.js index 5a39475..c1ed3d7 100644 --- a/src/site/index.11tydata.js +++ b/src/site/index.11tydata.js @@ -33,7 +33,7 @@ module.exports = { noteTitle: (data) => { const currentnote = data.collections.gardenEntry && data.collections.gardenEntry[0]; if (currentnote && currentnote.data) { - return currentnote.data.page.fileSlug; + return currentNote.data.title || currentnote.data.page.fileSlug; } return ""; }, diff --git a/src/site/lunr.njk b/src/site/lunr.njk index e7a7962..d52c19a 100644 --- a/src/site/lunr.njk +++ b/src/site/lunr.njk @@ -5,7 +5,7 @@ eleventyExcludeFromCollections: true --- [{% for post in collections.note %} { - "title": {{post.fileSlug | jsonify | safe }}, + "title": {% if post.data.title %}{{post.data.title | jsonify | safe }}{% else %}{{post.fileSlug | jsonify | safe }}{% endif %}, "date":"{{ post.date }}", "url":"{{ post.url }}", "content": {{ post.templateContent | striptags(true) | link | jsonify | safe }}