Skip to content


Post not shown if title contains : (colon) #549

Heliosmaster opened this Issue · 17 comments

in the YAML front matter, if I have

title: "Post title : Part 1"

the post is not shown by Jekyll.


An instant solution to this is to encode it yourself. A colon is: : as an entity.



The problem is it's hard to find which page contains colon. Jekyll produces exception:

/usr/share/ruby-rvm/gems/ruby-1.9.3-p194/gems/psych-1.3.4/lib/psych.rb:203:in `parse': (<unknown>): mapping values are not allowed in this context at line 4 column 14 (Psych::SyntaxError)
    from /usr/share/ruby-rvm/gems/ruby-1.9.3-p194/gems/psych-1.3.4/lib/psych.rb:203:in `parse_stream'
    from /usr/share/ruby-rvm/gems/ruby-1.9.3-p194/gems/psych-1.3.4/lib/psych.rb:151:in `parse'
    from /usr/share/ruby-rvm/gems/ruby-1.9.3-p194/gems/psych-1.3.4/lib/psych.rb:127:in `load'
    from /usr/share/ruby-rvm/gems/ruby-1.9.3-p194/gems/jekyll-0.11.2/lib/jekyll/convertible.rb:33:in `read_yaml'

When I use quotes around a title, the site is generated correctly.


I had this problem when importing from a tumblr. To fix colons in titles (with python; I'm sure there's some one-liner to do this, but it works):

import re
import glob
colon = re.compile(r"title:(.*:.*)")
for file in glob.glob("_posts/tumblr/*.html"):
    with open(file) as f:
        lines = f.readlines()
    for i, line in enumerate(lines):
        match = colon.match(line)
        if match:
            lines[i] = "title:" +":", "&#58;") + "\n"
            with open(file, "w") as f:
                print "updating ", file
                for line in lines:

Instant help! Yay.

Jekyll member

Unfortunately, Jekyll can't do much about this. It's really a YAML problem.

@parkr parkr closed this

Can Jekyll not even do anything useful about the error message? A meaningful error message would be really helpful.

Jekyll member

@nottrobin On master, it looks like we give a more helpful error. Did you test on 1.0.0.beta2?


I'm using jekyll 2.5.3 and I'm still getting an unhelpful error:

Error reading file /home/path/to/ (<unknown>): mapping values are not allowed in this context at line 3 column 12 

line 3 contains the title of the post which has a colon in it.

Jekyll member

@gideonite We asked about this here, check it out: dtao/safe_yaml#54

@else else referenced this issue in raumzeitlabor/rzl-homepage

YAML does not require quotes #130


Also using jekyll 2.5.3 and the workaround I prefer, is to use the "non-specifig tag" YAML syntax.

title: ! 'Attention: This post title has "colon" & stuff'
date: 2015-05-24 11:12:13

This allows me to use colon, double quotes, and pretty much any special char.


The syntax suggested by @caioproiete works for me.


I use 'Title: subtitle' and "Title: subtitle" everything work fine

Jekyll member

This issue is more than three years old; I would hope everything works fine.

@dpc dpc referenced this issue in tinypressco/
Open Must quote the title. #3


Quotes worked

@envygeeks envygeeks locked and limited conversation to collaborators
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Something went wrong with that request. Please try again.