Code Monkey home page Code Monkey logo

futhorc's Introduction

Futhorc

Futhorc is a static site generator for building my personal blog--it's not intended, recommended, or supported for broader uses. It's written in Go and uses a Communicating Sequential Processes (CSP) architecture for efficient builds (see the blog post for details).

futhorc's People

Contributors

weberc2 avatar weberc2-tempus avatar

Stargazers

 avatar

Watchers

 avatar  avatar

futhorc's Issues

Footnotes in summary link to the wrong page

Given a post called foo.md

Foo[^1]
<!-- more -->

Bar

[^1]: Hello, world

When viewed on an index page, it renders the footnote as a link to index.html#1 rather than {site_root}/posts/foo.html#1.

Fix sub-header sizes

Sub-headers are being rendered to HTML as <h1> when they should be <h3> (subordinate to the site-title header and the post title header).

Markdown inside `<details>` elements does not work

This is due to an outstanding bug in the upstream markdown library.

<details>

<!-- ignore the backslashes; markdown in markdown is hard -->
\`\`\`yaml
foo
\`\`\`

</details>

Renders as

<details>

<!-- ignore the backslashes; markdown in markdown is hard -->
\`\`\`
foo
\`\`\`

</details>

Instead of

<details>

<pre><code>
foo
</code></pre>

</details>

Create `init` subcommand

The subcommand should construct a new project directory with some pre-populated futhorc.yaml values, a /posts/ directory, and a basic theme.

Create action for publishing crate

Create a Github action for publishing the crate including crate docs.

On merge to master, bump the version (perhaps via cargo-bump; without triggering other actions which fire on merge to master?), run the normal build/test/lint/doc/etc, and then cargo publish.

Support per-post assets

It would be nice if I could bundle pictures or other assets with the posts that reference them.

Infer more config entries from a single directory argument

E.g.,

  • Project root directory at the location of the config file
  • Theme directory at ./theme (how does the theme communicate which files [including inheritance] to use for post and index templates?)
  • Output posts and paths directories at ./_output
  • Default index_page_size = 10

producing invalid feeds

It seems the version of the adom_syndication crate I'm using doesn't handle HTML content correctly, and it's causing the feed to be invalid XML (related issue: rust-syndication/atom#51). This has been fixed now (via rust-syndication/atom#51, rust-syndication/atom#52, rust-syndication/atom#53), so I need to pull in the latest changes.

This may also require some work to make sure the summaries, titles, etc don't contain HTML tags inappropriately. It seems the atom_syndication crate has changed the types on these Entry fields to hint this.

Support for static theme assets

Themes often depend on files besides the base, index, and post templates. E.g., style sheets, CSS, etc. To prove the concept, make the test-data/blog-copy test project resemble my actual blog.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.