Failed to extract shortcode with version 145

Hello, I just update to the last version of Hugo (145) and shortcode stop working.

hugo server --minify --gc --themesDir ../..

cd: no such file or directory: documents/GitHub/geeky-hugo/examplesite

Watching for changes in /Users/paoloprovera/documents/GitHub/geeky-hugo/examplesite/{assets,content,data,static}

Watching for config changes in /Users/paoloprovera/documents/GitHub/geeky-hugo/examplesite/config/_default

Start building sites …

hugo v0.145.0+extended+withdeploy darwin/arm64 BuildDate=2025-02-26T15:41:25Z VendorInfo=brew

Built in 2 ms

Error: error building site: process: readAndProcessContent: “/Users/paoloprovera/documents/GitHub/geeky-hugo/examplesite/content/expanses.md:20:4”: failed to extract shortcode: template for shortcode “extLink” not found

or this:

Error: error building site: process: readAndProcessContent: “/Users/paoloprovera/documents/GitHub/geeky-hugo/examplesite/content/travel-book-jp-ps.md:36:95”: failed to extract shortcode: template for shortcode “image” not found

This is my github repo: GitHub - Raxien/geeky-hugo: Geeky is a Personal Hugo blog theme focused on high speed. Geeky is fully responsive, Superfast, and powered by Bootstrap v5.

Any clue?

your link points to your fork of the theme - not to your site.

dunno if thats just the wrong link or if you really code your site in a themes fork, which would be the wrong approach

I cloned the initial project as suggested by the author:

clone the repository

git clone git@github.com:gethugothemes/geeky-hugo.git

And developed it within the exampleSite folder.

For me it looks like you first forked the repo to your account and then cloned to your local machine.

This branch is [833 commits ahead of](https://github.com/Raxien/geeky-hugo/compare/statichunt%3Ageeky-hugo%3Amaster...master), [49 commits behind](https://github.com/Raxien/geeky-hugo/compare/master...statichunt%3Ageeky-hugo%3Amaster) statichunt/geeky-hugo:master.

using a theme usually is done by:

hugo new site mysite
cd mysite
git clone https://path to theme themes/theme-name
# add theme = themename parameter to config

that way you separate your content from the theme but nevertheless:

  • the theme is rather old, so some errors are expected when you switch to latest Hugo.

I’m on Windows and when I clone your repo I get errors with filenames.

  • ? within a file name is never a good idea
  • : also a bad on e(at least for windows)
error: invalid path 'exampleSite/content/blog/cambiare-vita-e-ancora-possibile?.md'
error: invalid path 'exampleSite/content/blog/direzione-giappone-6-efeso-ne-vale-davvero-la-pena?.md'
error: invalid path 'exampleSite/content/blog/direzione-giappone-7-pamukkale-ne-vale-davvero-la-pena?.md'
error: invalid path 'exampleSite/content/blog/viaggiare-in-russia:-guida-completa-in-11-punti-aggiornamento-2024.md'

when I use hugo on your master branch (root folder) I get totally different error messages.

using hugo server --minify --gc --themesDir ../.. in the root folder or exampleSite folder won’t work, cause ../.. will move outside your repo and I don’t have anything there.

Did you recon the error in your posted log (btw better use ``` or the </> button not quote)

cd: no such file or directory: documents/GitHub/geeky-hugo/examplesite

If you are on Mac/Linux it should be exampleSite (capital S)

that all said:

  • It looks like you have more around your repo, that is needed to get that build.

  • guess you have something working on your local machine
    please try it on your own by cloning your repo and provide instructions to build.
  • which Hugo version is working

Thank you for your answer and suggestion. I’ll probably clone it as you suggested, sooner or later.

I’m on Windows and when I clone your repo I get errors with filenames.

I just fixed the filenames.

It looks like you have more around your repo, that is needed to get that build.

In exampleSite folder i run this and it work
hugo server --minify --gc --themesDir ../..

Until today

paoloprovera@MacBook-Air-di-Paolo exampleSite %                               
hugo server --minify --gc --themesDir ../..
Watching for changes in /Users/paoloprovera/documents/GitHub/geeky-hugo/exampleSite/{assets,content,data,static}
Watching for config changes in /Users/paoloprovera/documents/GitHub/geeky-hugo/exampleSite/config/_default
Start building sites … 
hugo v0.145.0+extended+withdeploy darwin/arm64 BuildDate=2025-02-26T15:41:25Z VendorInfo=brew

Built in 8 ms
Error: error building site: process: readAndProcessContent: "/Users/paoloprovera/documents/GitHub/geeky-hugo/exampleSite/content/expanses.md:20:4": failed to extract shortcode: template for shortcode "extLink" not found

which Hugo version is working

0.112.4

Is there any way to revert to a previous version?

Simply conduct a small test by removing all pages that use shortcodes, and it should work.

The site is 99% compatible with the new version, except for the fact that it doesn’t recognize the shortcodes :sweat_smile:

I din’t say that this does not work on your machine, but it won’t work somewhere else cause
Lets say this is the root of your of your repo /somewhere/clone this contains the exampleSitefolder.
This one will move two folders up --themesDir ../.. so we are in /somewhere

educated guess: you have a fork of the theme in parallel to your site repo.

PS C:\_repos\github\clone> git clone https://github.com/Raxien/geeky-hugo.git topic-54128-geeky
Cloning into 'topic-54128-geeky'...
remote: Enumerating objects: 6618, done.
remote: Counting objects: 100% (6/6), done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 6618 (delta 0), reused 2 (delta 0), pack-reused 6612 (from 2)
Receiving objects: 100% (6618/6618), 134.70 MiB | 5.90 MiB/s, done.
Resolving deltas: 100% (4990/4990), done.
PS C:\_repos\github\clone> cd .\topic-54128-geeky\exampleSite\
PS C:\_repos\github\clone\topic-54128-geeky\exampleSite> hugo server --minify --gc --themesDir ../..
ERROR deprecated: site config key paginate was deprecated in Hugo v0.128.0 and will be removed in Hugo 0.144.0. Use pagination.pagerSize instead.
Hugo provides its own webserver which builds and serves the site.
While hugo server is high performance, it is a webserver with limited options.
Noise

The hugo server command will by default write and serve files from disk, but
you can render to memory by using the --renderToMemory flag. This can be
faster in some cases, but it will consume more memory.

By default hugo will also watch your files for any changes you make and
automatically rebuild the site. It will then live reload any open browser pages
and push the latest content to them. As most Hugo sites are built in a fraction
of a second, you will be able to save and see your changes nearly instantly.

Usage:
hugo server [command] [flags]
hugo server [command]

Aliases:
server, serve

Available Commands:
trust Install the local CA in the system trust store.

Flags:
–appendPort append port to baseURL (default true)
-b, --baseURL string hostname (and path) to the root, e.g. https://spf13.com/
–bind string interface to which the server will bind (default “127.0.0.1”)
-D, --buildDrafts include content marked as draft
-E, --buildExpired include expired content
-F, --buildFuture include content with publishdate in the future
–cacheDir string filesystem path to cache directory
–cleanDestinationDir remove files from destination not found in static directories
-c, --contentDir string filesystem path to content directory
–disableBrowserError do not show build errors in the browser
–disableFastRender enables full re-renders on changes
–disableKinds strings disable different kind of pages (home, RSS etc.)
–disableLiveReload watch without enabling live browser reload on rebuild
–enableGitInfo add Git revision, date, author, and CODEOWNERS info to the pages
–forceSyncStatic copy all files when static is changed.
–gc enable to run some cleanup tasks (remove unused cache files) after the build
-h, --help help for server
–ignoreCache ignores the cache directory
-l, --layoutDir string filesystem path to layout directory
–liveReloadPort int port for live reloading (i.e. 443 in HTTPS proxy situations) (default -1)
–minify minify any supported output format (HTML, XML etc.)
-N, --navigateToChanged navigate to changed content file on live browser reload
–noChmod don’t sync permission mode of files
–noHTTPCache prevent HTTP caching
–noTimes don’t sync modification time of files
-O, --openBrowser open the site in a browser after server startup
–panicOnWarning panic on first WARNING log
–poll string set this to a poll interval, e.g --poll 700ms, to use a poll based approach to watch for file system changes
-p, --port int port on which the server will listen (default 1313)
–pprof enable the pprof server (port 8080)
–printI18nWarnings print missing translations
–printMemoryUsage print memory usage to screen at intervals
–printPathWarnings print warnings on duplicate target paths etc.
–printUnusedTemplates print warnings on unused templates.
–renderSegments strings named segments to render (configured in the segments config)
–renderStaticToDisk serve static files from disk and dynamic files from memory
–templateMetrics display metrics about template executions
–templateMetricsHints calculate some improvement hints when combined with --templateMetrics
-t, --theme strings themes to use (located in /themes/THEMENAME/)
–tlsAuto generate and use locally-trusted certificates.
–tlsCertFile string path to TLS certificate file
–tlsKeyFile string path to TLS key file
–trace file write trace to file (not useful in general)
-w, --watch watch filesystem for changes and recreate as needed (default true)

Global Flags:
–clock string set the clock used by Hugo, e.g. --clock 2021-11-06T22:30:00.00+09:00
–config string config file (default is hugo.yaml|json|toml)
–configDir string config dir (default “config”)
-d, --destination string filesystem path to write files to
-e, --environment string build environment
–ignoreVendorPaths string ignores any _vendor for module paths matching the given Glob pattern
–logLevel string log level (debug|info|warn|error)
–noBuildLock don’t create .hugo_build.lock file
–quiet build in quiet mode
-M, --renderToMemory render to memory (mostly useful when running the server)
-s, --source string filesystem path to read files relative from
–themesDir string filesystem path to themes directory

Use “hugo server [command] --help” for more information about a command.

Error: command error: failed to load modules: module "geeky-hugo" not found in
 "C:\\_repos\\github\\clone\\geeky-hugo"; either add it as a Hugo Module or store it in 
"C:\\_repos\\github\\clone".: module does not exist

downgrade Hugo

Depends on the installation method you used. no idea how to do it on Mac. Hugo is just one binare you could fetch from the Release page and put it somewhere.

Same here: your site is in somewhere/site/exampleSite
your theme in somewhere/geeky-hugo

the extLink.html is in site/layouts and this is not available with your command
copying the layouts to exampleSite will show up next errors (even with 112.4)

hugo server --minify --gc --themesDir ../..

looks like the next being somewhere …

Try this:

create a new empty folder at some very different place:

mkdir /a/new/folder/somewhere
cd /a/new/folder/somewhere
git clone https://github.com/Raxien/geeky-hugo.git mysite
cd mysite/exampleSite
hugo server --minify --gc --themesDir ../..

I’m out unless that culprits have been fixed

Don’t ask me how, but by using CursorAi and tweaking the code, I managed to update my project from version 112 to 145.

It seems there was an issue with the directory structure that was working fine until the previous version.