ionide / Fornax

Scriptable static site generator using type safe F# DSL to define page templates.
MIT License
241 stars 44 forks source link

Themes? #71

Open Thorium opened 4 years ago

Thorium commented 4 years ago

One thing that made Jekyll (and then Hugo) so popular was that you could just get a theme from a website, and there are lot of themes available: https://themes.gohugo.io/

I select a theme meant for a blog, I get out-of-the-box:

The reason people sharing these is, that the static site (/blog) is not core business (/subject of the main interest for the user). For example, Google Analytics script is same for everyone and if Google changes the script version, then who actually wants to maintain that by themselves...

What is the goal of Fornax, will it be an alternative for HUGO? How does it help users to share these kind of higher-abstraction components like themes?

drewknab commented 4 years ago

I briefly mentioned something like that in #67. It seems like themes would be the next logical step? Although I'm not sure what that looks like. I suppose it would just be a package of loaders/generators/js/style?

To your other point, I think alternative is right? The thing that brought me to Fornax, other than being F#, is that it encourages fiddling around with the guts of the project in a way that Hugo or Gatsby don't. However, it's fair that building your own artisanal loaders and generators isn't necessarily a huge draw in a general audience.

drewknab commented 3 years ago

I started looking into this and I'm 60% into implementing something like:

  1. Check for --template flag
    1. If --template determine whether value is a URL or not
      • If URL git clone etc
      • If not, handle as a local folder
        • Relative to current working directory?

Thoughts on that?

Thorium commented 3 years ago

Sound typical. If I remember correctly e.g. SwaggerProvider has a small code block that does that.

Thorium commented 3 months ago

For the last bullet point, I'd expect some default meta-tags, for example:

<head>
<!-- ... current rels plus ... -->
<meta name="description" content="This is a blog for blah blah.">
<!-- OGs are for social media sharing previews -->
<meta property="og:site_name" content="My.Blog">
<meta property="og:image" content="http://ionide.io/FSharp.Analyzers.SDK/images/logo.png">
<meta property="og:image:secure_url" content="https://ionide.io/FSharp.Analyzers.SDK/images/logo.png">
<!-- match Twitter option with Some 
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@fsharp_analysers">
<meta name="twitter:image" content="http://ionide.io/FSharp.Analyzers.SDK/images/logo.png">
-->
<!-- This would be for your mother's phone: -->
<!--link rel="apple-touch-icon-precomposed" sizes="144x144" href="http://ionide.com/apple-touch-icon-144-precomposed.png"-->
</head>