gohugoio / hugo

The world’s fastest framework for building websites.
https://gohugo.io
Apache License 2.0
74.32k stars 7.43k forks source link

Use filename as title when it’s not defined in front matter #3805

Open idealhack opened 7 years ago

idealhack commented 7 years ago

Note: I'm new to Hugo, so If there's a better way about this fell free to correct me.

For now I use {{.File.TranslationBaseName}} in template cause {{.Title}} is empty string. I thought it's better to store it in the title variable, as themes out there are already using it. Also we could use file dates for date and lastmod.

I thought this is a nice feature especially when there're a lot of content files imported from another system.

For myself, I use nvALT to take markdown notes. nvALT has already handle the title and date in this way, now I want to use Hugo for building the website. But maintaining notes metadata by hand is not a good practice IMHO.

What do you think?

This was originally posted at https://discourse.gohugo.io/t/use-filename-as-title-when-its-not-defined-in-front-matter/7965

maxandersen commented 6 years ago

I got a patch that makes this happen, but dependent on the changes in https://github.com/gohugoio/hugo/pull/3762 that in addition to deriving date from filename also fixes how metadata defaults are calculated which is needed to fix title handling. If that PR gets merged in I can easily make a PR for this issue too.

maxandersen commented 6 years ago

note I think its worth going a level further and try detect if content has a top level header as defined by markdown, asciidoc or orgmode and use that header if present, if not use filename.

bep commented 6 years ago

note I think its worth going a level further and try detect if content has a top level header as defined by markdown, asciidoc or orgmode and use that header if present,

No, that is too hacky and not worth it.

maxandersen commented 6 years ago

No, that is too hacky and not worth it.

too hacky? as compared to try derive from filename ?

It works pretty well in awestruct and others and it has the big plus your blog posts actually render with proper title when shown "raw" in github.

maxandersen commented 6 years ago

btw. made the patch before I saw your comment so you can see the idea at https://github.com/gohugoio/hugo/pull/3859

maxandersen commented 6 years ago

note, the idea is similar to extract toc and summary that tries to parse raw and generated content to derive "metadata".

bep commented 6 years ago

Note that the current TOC solution is also considered "hacky and slow" in my book, and will be fixed once Blackfriday 2 is out. We're not doing any regexp magic looking for titles.

Also, I'm not a big fan of pull requests that try to do more than the issue they describe. Do one thing well.

maxandersen commented 6 years ago

Also, I'm not a big fan of pull requests that try to do more than the issue they describe. Do one thing well.

okey - I've updated patch to just to title based on filename/slug.

I hope this can merged in together with the date fallback which this fix is dependent on (as without it metadata fallback calculation sequences are different whether there is a frontmatter or not )

reinier commented 6 years ago

No, that is too hacky and not worth it.

What's hacky about it @bep? Seems like a beautiful way to get rid of an unnecessary required front matter variable. I would love to get rid of all the required front matter entirely to keep the content documents as clean and as portable as possible.

idealhack commented 6 years ago

Since now we have support extract the date from filename by #4494, would it be easier to do this for the title? I would like to do a PR if there is any guidance.

BTW, I like some ideas in #4341.

stale[bot] commented 5 years ago

This issue has been automatically marked as stale because it has not had recent activity. The resources of the Hugo team are limited, and so we are asking for your help. If this is a bug and you can still reproduce this error on the master branch, please reply with all of the information you have about it in order to keep the issue open. If this is a feature request, and you feel that it is still relevant and valuable, please tell us why. This issue will automatically be closed in the near future if no further activity occurs. Thank you for all your contributions.

matrixik commented 5 years ago

bump

Nuc1eoN commented 2 years ago

How can I achieve this functionality?