https://github.com/capjamesg/codename-apple

A static site generator for my blog posts. Built in Common Lisp.

https://github.com/capjamesg/codename-apple

Science Score: 13.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.2%) to scientific vocabulary

Keywords

common-lisp lisp static-site-generator
Last synced: 6 months ago · JSON representation

Repository

A static site generator for my blog posts. Built in Common Lisp.

Basic Info
  • Host: GitHub
  • Owner: capjamesg
  • License: mit
  • Language: Common Lisp
  • Default Branch: main
  • Homepage:
  • Size: 161 KB
Statistics
  • Stars: 0
  • Watchers: 2
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Topics
common-lisp lisp static-site-generator
Created over 3 years ago · Last pushed over 3 years ago
Metadata Files
Readme License

README.md

Codename: Apple

Codename: Apple is a static site generator built in Common Lisp.

Codename: Apple lets you:

  • Define HTML templates in Lisp.
  • Generate templates for markdown documents based on their front matter.

Screenshot

Here is a static HTML page generated by Codename: Apple:

Screenshot of a web page for a MediaWiki sparkline generator tool with an example graph of wiki contributions

Using the Generator

To use Codename: Apple, first load the generator.lisp file into your script:

(load "generator.lisp")

You can now start defining and generating HTML documents in Lisp.

Defining a HTML element

To define a HTML element, you can use this syntax:

(tag tagname contents attributes)

Here's an example of a tag that defines a link:

(princ
    (tag "a" "This is a link!"
    (list
        (attr "href" "example.com")
        (attr "style" "border-bottom: none;"))))

The generator returns this code as a HTML element:

<a href='example.com' style='border-bottom: none;' >This is a link!</a>

To define more complicated documents, you can nest values:

(princ
    (tag "div"
        (tag "a" "This is a link!"
            (list
                (attr "href" "example.com")
                (attr "style" "border-bottom: none;")))
    (list (attr "class" "h-entry"))))

This nests our <a> tag from earlier in a <div> with the class name h-entry:

<div class='h-entry' ><a href='example.com' style='border-bottom: none;' >This is a link!</a></div>

TODOs

  • [ ] Document how front matter parsing works.
  • [ ] Add inline comments for all functions.
  • [ ] Remove functions used for my specific website.
  • [ ] Document example in examples/ folder.

Dependencies

This project relies on the following Common Lisp dependencies:

  • cl-ppcre
  • uiop
  • markdown

License

This project is licensed under an MIT license.

Contributors

  • capjamesg

Owner

  • Name: James
  • Login: capjamesg
  • Kind: user
  • Location: Scotland
  • Company: @Roboflow

from words, wonder.

GitHub Events

Total
Last Year

Issues and Pull Requests

Last synced: 11 months ago

All Time
  • Total issues: 0
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels