Comments (4)
Took a quick look and it seems like this would be more of a change to Metalsmith itself? If it's OK, I'll just leave this issue open for a bit in case anyone has any suggestions though, thanks.
from collections.
👍
I need this feature too. :D
from collections.
I'm the author of metalsmith-data-loader and it should be able to load JSON for you. Assuming the default configuration and if you have something that can parse mustache templates ...
---
data: content/talks.json
---
<ul>
{{#data}}
<li><a href="{{href}}">{{title}}</a></li>
{{/data}}
</ul>
The above would work with a JSON file like this:
[
{
"href": "/page1.html",
"title": "This is page 1"
}
]
Would this solve your data loading needs?
from collections.
Thanks @fidian, yes that's what I was looking for!
I actually realised afterwards I was over-complicating it and I should just write a markdown list page directly. But your plugin seems like the solution if I wanted to do that again - I just tried it out and I think I got it working fine. In case it helps others, I set it up like this:
// build.js
Metalsmith(__dirname)
.use(dataLoader())
// ... Various other config here ...
.use(templates('handlebars')) // NB. I'm using metalsmith-templates but I see it's now deprecated
// ... Various other config here ...
// src/talks.md
---
title: Talks
data: content/talks.json
template: talks.hbs
---
# Talks
// src/content/talks.json
[
{
"href": "http://foo.com",
"title": "Lorem Ipsum Talk"
},
{
"href": "http://bar.com",
"title": "Another Great Talk."
}
]
// templates/talks.hbs
<ul>
{{#data}}
<li><a href="{{href}}">{{title}}</a></li>
{{/data}}
</ul>
This produces:
// build/talks/index.html
<ul>
<li><a href="http://foo.com">Lorem Ipsum Talk</a></li>
<li><a href="http://bar.com">Another Great Talk.</a></li>
</ul>
Thanks again. I'm going to close this issue now.
from collections.
Related Issues (20)
- Roadmap 2.0 HOT 1
- Proposal: more declarative/condensed sort options
- Use metalsmith.match instead of multimatch
- Next/previous links not set HOT 2
- Update changelog HOT 1
- Absence of metadata in output in non-empty collections HOT 2
- Multiple builds break the plugin HOT 2
- Why is the property added collection and not collections? HOT 3
- Open to other maintainers? HOT 3
- data.path would be more useful with an html extension than a markdown one HOT 1
- storyblok and metalsmithJs (how to create a collection of blog-posts)
- Path not being set properly when using metalsmith-in-place HOT 5
- Metadata for documents contains markdown HOT 1
- Organizing posts into mutiple collections? HOT 1
- How to generate URLs using path variable? HOT 2
- please update npm repo HOT 4
- How to ungroup the grouped .hbs templates in .yaml file in metalsmith pattern collection HOT 4
- Transfer ownership to metalsmith org
- Feature: add 'first' and 'last' references
- Fix ambiguous mapping of metadata vs pattern collections
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from collections.