Static Site Generator Based Upon Directories & Files

Which Static Site Generator can generate pages by just iterating through an assets directory of images (without any content format (e.g. MD) files)?

As you already mentioned, I am not aware of any SSG which is triggered by images, but I guess there are some Gallery tools out there.

As a workaround, you could use jBake with groovy templates.
Place one index file in your root directory and use Groovy within your template to iterate over the images.

What is the recommended practice with static site generators: page1/index.md or page1.md?

Either way works in Eleventy, so it’s entirely a question of which way you prefer, which works best for how you like to arrange files and directories, and so on (https://www.zachleat.com/web/introducing-eleventy/#directory-structure-flexibility).

In other SSGs — notably Gatsby, Gridsome, and Hugo — one factor to keep in mind is that images for which you want special processing are best located in the same directories as the Markdown or other content files which “call” them, as relative file paths are required by the appropriate plugins or pipes:

  • Gatsby: “If any of the [image] paths used do not resolve to a file[,] Gatsby will not create child nodes, instead leaving the [path] value as a string.” (https://www.orangejellyfish.com/blog/a-comprehensive-guide-to-images-in-gatsby/)

  • Gridsome — “Only local, relative image paths will be compressed by Gridsome.” (https://gridsome.org/docs/images/)

  • Hugo — “The image is a Page Resource, and the [image] processing methods listed below does not work [sic] on images inside your /static folder.” (https://gohugo.io/content-management/image-processing/)

This is not a consideration with Eleventy, however.

Data-backed static site generator?

While I haven't found an equally powerful, statically typed option, it looks like Jekyll's Collections functionality is exactly what you're looking for. You create a file for each "DataObject" referred to in the question, and Jekyll runs through them and generates pages.

Static web site generation

I'm the creator of Middleman and would be eager to help you get comfortable using Middleman. My main goal is to give users the power of Rails, but focused on static development. Some of the actual code of Middleman is simplified versions of Ab

Porting an existing site to a static site generator

After your clarification in comment the answer is: yes, you can initialize Sculpin in your site directory - it shouldn't delete anything.

I'd do it this way:

 2. create a copy of your current page
2. initialize sculpin in the copied directory
3. extract pages content into markdown files and put them in ./source/_posts/
4. prepare layout with new headers and footers
5. run sculpin generate
6. check result in output_dev
7. fix errors and regenerate

Sculpin is nice because it copies all the files that are in your sculpin directory to generated page - if you put some .html files there, they'll end up in generated folder.

Only problem could be that if you have pages (html files), that have the same filename as the result of the process of generating content from markdown they'd probably be overwritten in output directory.

Oww, you also mentioned composer and getting sculpin from github - yes, this could go wrong - why do you want to have local sculpin copy instead of global install - it's not needed in page source - you only need layout and config there.

Hugo (go static site generator) list for specific URLs

At this point the documentation is a little bit hard to order. I am going to link the important topics to the hugo documentation so that you are able to read more details. After looking to your Content Organisation there are two Sections:

  • blog-folder-1
  • blog-folder-2

So inside your theme you are able to define one template for each section. If there is no template provided hugo uses the default.

So inside your layouts folder there is that logic: /layouts/SECTION/LAYOUT.html

For your case you can define a default layout. When for example blog-folder-2 needs another template your structure would look like this:

layouts/
▾ _default/
single.html
▾ blog-folder-2/
single.html

If you want to filter out one section inside a list, you need to use the page variables.

At that points where you are ranging over the sites you can add a where clause:

 {{ range $i, $p := (.Paginate (where .Data.Pages "Section" "!=" "blog-folder-2")).Pages }}


Related Topics



Leave a reply



Submit