Download
We're evolving to serve you better! This current forum has transitioned to read-only mode. For new discussions, support, and engagement, we've moved to GitHub Discussions.

YAML-Headers

  • #5565
    Avatar photo[anonymous]
    I keep my local documents mostly in Markdown format (.md), where I use YAML-Headers to specify meta-data.
    Is there a way Β to keep these headers in a (markdown-) post and possibly also use these headers to create tags?
    If not: are there plans to do that? (If not, I might volunteer to add those helpers…)
    ---
    title: Snippets
    path: /snippets
    date: 2061-01-01
    summary: snippets to remember
    categories: [Development]
    tags: ["development", "javascript"]
    image: images/snippets.jpg
    color: yellow
    ---
    
    #5645
    Avatar photo[anonymous]

    thanks for the reply. It could be, we are talking about 2 different things πŸ˜‰

    I want the postOptions to be created dynamically from the YAML (front-matter) keys, which are entered as raw text inside a post.

    When reading a post, the application looks for the front-matter and – if found – uses those front-matter-variables as postOptions. E.g.:

    ---
    title: Snippets
    custom1: Hello
    custom2: This is a test
    ---

    And then strips front-matter-variables from the output.

    Then – in the template – I just can use those variables as regular ‘postOptions’

    {{#if postViewConfig.post.title}}
    <h1>{{postViewConfig.post.title}}</h1>
    {{/if}}
    
    {{#if postViewConfig.post.custom1}}
    <h3>{{postViewConfig.post.custom1}}</h3>
    {{/if}}
    
    {{#if postViewConfig.post.custom2}}
    {{postViewConfig.post.custom2}}
    {{/if}}

    etc … results in this:

    <h1>Snippets</h1>
    <h3>Hello</h3>
    <p>This is a test</p>

    (front-matter always wins over built-in postOptions…)

    I hope this makes it a bit more obvious, what I’m trying to do.

    This makes it incredible powerful to create/use NoSQL-like content, and makes it also pretty easy to ‘tune’ the output by just adjusting some templates/partials….

    Does that make my intent clearer?

    (Btw: if there was a plugin API, this would also make a nifty plugin, imo)

    #5648
    Avatar photo[anonymous]

    I’ve seen that… it’s close, but unfortunately that doesn’t work for me. I want to keep front-matter with the markdown.

    I would like to have Publii take the value of the front-matter-variable and use it as value.

    "postConfig": [
            {
                "name": "custom1",
                "label": "insert custom1 value",
                "value": "use front-matter-variable 'custom1'",
                 "type": "text"      
           },
           {
                "name": "custom2",
                "label": "insert custom2 value",
                "value": "use front-matter-variable 'custom2'",
                 "type": "text"      
           }
    ]
    

    And – of course – then strip the front-matter alltogether before saving to HTML.

    If there will be a plugin API available at some point to process post-data I’ll re-visit this.
    Please feel free to drop me a note, if you are working on something and need some input.

    And thanks again for your input…

    btw. normally I code those things by hand and export via a shell, but Publii looks interesting and I really like what you did so far πŸ™‚

    #5650
    Avatar photo[anonymous]

    Anyway… thanks for your input!! πŸ˜‰

    So, if someone from the team reads this – feel free to join the discussion πŸ™‚