16 KiB
date: 2019-11-27 title: "Now CommonMark Compliant!" description: "Goldmark -- CommonMark compliant, GitHub flavored, fast and flexible -- is the new default library for Markdown in Hugo." categories: ["Releases"]
Goldmark by @yuin is now the new default library used for Markdown in Hugo. It's CommonMark compliant and GitHub flavored, and both fast and flexible. Blackfriday, the old default, has served us well, but there have been formatting and portability issues that were hard to work around. The "CommonMark compliant" part is the main selling feature of Goldmark, but with that you also get attribute syntax on headers and code blocks (for code blocks you can turn on/off line numbers and highlight line ranges), strikethrough support and an improved and configurable implementation of TableOfContents
. See Markup Configuration for an overview of extensions.
Please read the Notes Section and the updated documentation. We suggest you start with List of content formats in Hugo. Goldmark is better, but the feature set is not fully comparable and it may be more stricter in some areas (there are 17 rules for how a headline should look like); if you have any problems you cannot work around, see Configure Markup for a way to change the default Markdown handler.
Also, if you have lots of inline HTML in your Markdown files, you may have to enable the unsafe
mode:
{{< code-toggle file="config" >}} markup: goldmark: renderer: unsafe: true {{< /code-toggle >}}
This release represents 62 contributions by 10 contributors to the main Hugo code base. @bep leads the Hugo development with a significant amount of contributions, but also a big shoutout to @anthonyfok, @max-arnold, and @trimbo for their ongoing contributions. And a big thanks to @digitalcraftsman and @onedrawingperday for their relentless work on keeping the themes site in pristine condition and to @kaushalmodi and @davidsneighbour for great work on the documentation site.
Many have also been busy writing and fixing the documentation in hugoDocs, which has received 8 contributions by 4 contributors. A special thanks to @bep, @jasdeepgill, @luucamay, and @jkreft-usgs for their work on the documentation site.
Hugo now has:
- 39668+ stars
- 440+ contributors
- 274+ themes
Notes
- Permalink config now supports Go date format strings. #6489
- We have removed the option to use Pygments as a highlighter. #4491
- Config option for code highlighting of code fences in Markdown is now default on. This is what most people wants.
- There are some differences in the feature set of Goldmark and Blackfriday. See the documentation for details.
- The highlight shortcode/template func and the code fence attributes now share the same API regarding line numbers and highlight ranges.
- The
Total in ...
for thehugo
command now includes the configuration and modules loading, which should make it more honest/accurate. - The image logic in the 3 SEO internal templates twitter_cards.html, opengraph.html, and schema.html is consolidated:
images
page param first, then bundled image matching*feature*
,*cover*
or*thumbnail*
, then finallyimages
site param. - Deprecate mmark 33d73330 @bep #6486
Enhancements
Templates
- Featured and Site.Params image support for Schema c91970c0 @max-arnold
- Add support for featured and global image to OpenGraph template 25a6b336 @max-arnold
- Allow dict to create nested structures a2670bf4 @bep #6497
- Add collections.Reverse 90d0cdf2 @bep #6499
- Make index work with slice as the last arg 95ef93be @bep #6496
- Add some index map test cases 9f46a72c @bep #3974
Output
- Add some more output if modules download takes time 14a1de14 @bep #6519
- Add some more output if loading modules takes time 2dcc1318 @bep #6519
Core
- Disable test assertion on Windows dd1e5fc0 @bep
- Adjust .Site.Permalinks deprecation level 03b369e6 @bep
- Remove .Site.Ref/RelRef 69fd1c60 @bep
- Increase default timeout value to 30s a8e9f838 @bep #6502
- Add a benchmark 0cf85c07 @bep
Other
- Add some internal template image tests dcde8af8 @bep #6542
- Update Goldmark b0c7749f @bep
- Use HUGO_ENV if set 5c5231e0 @bep #6456
- Make the image cache more robust d6f7a9e2 @bep #6501
- Update to Go 1.13.4 and Go 1.12.13 031f948f @bep
- Restore -v behaviour 71597bd1 @bep
- Update Goldmark 82219128 @bep
- Improve grammar in README.md e1175ae8 @jasdeepgill
- Replace the temp for with a dependency a2d77f4a @bep
- Update Chroma b546417a @bep
- Update Goldmark 4175b046 @bep
- markup/tableofcontents: GoDoc etc. 55f951cb @bep
- Minor cleanups 20f351ee @moorereason
- Add Goldmark as the new default markdown handler bfb9613a @bep #5963#1778#6355
- Add parallel task executor helper 628efd6e @bep
- Update homepage.md 14a985f8 @bep
- Do not check for remote modules if main project is vendored 20ec9fa2 @bep #6506
- Add hint when dir not empty 1a36ce9b @YaguraStation #4825
- Headless bundles should not be listed in .Pages d1d1f240 @bep #6492
- Support Go time format strings in permalinks 70a1aa34 @look
- Increase timeout to 30000 for mage -v check cafecca4 @anthonyfok
- Prepare for Goldmark 5f6b6ec6 @bep #5963
- Update quicktest 366ee4d8 @bep
- Use pointer receiver for ContentSpec 9abd3967 @bep
- Allow arm64 to fail ad4c56b5 @bep
- Add a JSON roundtrip test 3717db1f @bep #6472
- Update .travis.yml for arm64 support, etc. ae4fde08 @anthonyfok
- Skip Test386 on non-AMD64 architectures c6d69d0c @anthonyfok
- Switch to mage builds, various optimizations ed268232 @jakejarvis
- Add exception for new test image 66fe68ff @anthonyfok #6439
- Adjust benchmark templates c5e1e824 @bep
- Update quicktest 3e8b5a5c @bep
- Do not attempt to build if there is no config file e6aa6edb @ollien #5896
Fixes
Output
Core
- Fix cascade in server mode 01766439 @bep #6538
- Fix .Sections vs siblings da535235 @bep #6365
- Fix recently broken timeout config e3451371 @bep
- Fix emoji handling inside shortcodes 812688fc @bep #6504
- Fix ref/relref anhcor handling c26d00db @bep #6481
Other
- Fix language handling in ExecuteAsTemplate 96f09659 @bep #6331
- Fix potential data race 03e2d746 @bep #6478
- Fix jekyll metadata import on individual posts 8a89b858 @trimbo #5576
- Fix Params case handling in the index, sort and where func a3fe5e5e @bep
- Fix GetPage Params case issue cd07e6d5 @bep #5946
- Update to Chroma v0.6.9 for Java lexer fix 8483b53a @anthonyfok #6476
- Update past go-cmp's checkptr fix c3d433af @anthonyfok
- Fix crash in multilingual content fs 33c474b9 @bep #6463
- Update to Chroma v0.6.8 to fix a crash baa97508 @bep #6450