Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/facundoolano/jorge
jorge is a personal site generator with org-mode support
https://github.com/facundoolano/jorge
Last synced: 5 days ago
JSON representation
jorge is a personal site generator with org-mode support
- Host: GitHub
- URL: https://github.com/facundoolano/jorge
- Owner: facundoolano
- License: gpl-3.0
- Created: 2024-02-09T14:28:58.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2024-09-16T23:16:31.000Z (about 2 months ago)
- Last Synced: 2024-09-18T04:13:43.085Z (about 2 months ago)
- Language: Go
- Homepage: https://jorge.olano.dev/
- Size: 294 KB
- Stars: 55
- Watchers: 4
- Forks: 2
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# jorge
A personal (small + opinionated) site generator with [org-mode](https://orgmode.org/) (and markdown) support.## Installation
Download the [latest release binary](https://github.com/facundoolano/jorge/releases/latest) for your platform, for example:$ wget https://github.com/facundoolano/jorge/releases/latest/download/jorge-darwin-amd64 \
-O jorge && chmod +x jorge && mv jorge /usr/local/binAlternatively, install with go:
$ go install github.com/facundoolano/jorge@latest
## Example usage
Create a new website with `jorge init`:
```bash
$ jorge init myblog
site name: My Blog
site url: https://myblog.olano.dev
author: Facundo Olano
added myblog/.gitignore
added myblog/includes/post_preview.html
added myblog/layouts/base.html
added myblog/layouts/default.html
added myblog/layouts/post.html
added myblog/src/assets/css/main.css
added myblog/src/blog/goodbye-markdown.md
added myblog/src/blog/hello-org.org
added myblog/src/blog/index.html
added myblog/src/blog/tags.html
added myblog/src/feed.xml
added myblog/src/index.html
```This initializes a new project with default configuration, styles and layouts, and a couple of sample posts.
(You can, of course, use a different site structure or just skip the init command altogether).To preview your site locally, use `jorge serve`:
```bash
$ cd myblog
$ jorge serve
wrote target/feed.xml
wrote target/blog/goodbye-markdown/index.html
wrote target/blog/my-first-post/index.html
wrote target/blog/hello-org/index.html
wrote target/blog/index.html
wrote target/index.html
wrote target/blog/tags/index.html
serving at http://localhost:4001
```The site is renders the files found at `src/` in the `target/` directory.
You can add new pages by just adding files to `src/` but, for the common case of adding blog posts,
the `jorge post` creates files with the proper defaults:```
$ jorge post "My First Post"
added src/blog/my-first-post.org
$ cat src/blog/my-first-post.org
---
title: My First Post
date: 2024-02-21 13:39:59
layout: post
lang: en
tags: []
draft: true
---
#+OPTIONS: toc:nil num:nil
#+LANGUAGE: en
```(Posts are created as .org files by default, but you can chage it to prefer markdown or another text format).
If you still have `jorge serve` running, you can see the new post by browsing to `http://localhost:4001/blog/my-first-post`. You can then add some content and the browser tab will automatically refresh to reflect your changes:
```bash
$ cat >> src/blog/my-first-post.org <