Mura Li d77176912b Use Go1.11 module ()
* Migrate to go modules

* make vendor

* Update mvdan.cc/xurls

* make vendor

* Update code.gitea.io/git

* make fmt-check

* Update github.com/go-sql-driver/mysql

* make vendor
..
.gitignore Use Go1.11 module ()
.travis.yml Use Go1.11 module ()
LICENSE Add init support of orgmode document type on file view and readme ()
README.org Use Go1.11 module ()
goorgeous.go Add init support of orgmode document type on file view and readme ()
gopher.gif Use Go1.11 module ()
gopher_small.gif Use Go1.11 module ()
header.go Add init support of orgmode document type on file view and readme ()

README.org

chaseadamsio/goorgeous

https://travis-ci.org/chaseadamsio/goorgeous.svg?branch=master https://coveralls.io/repos/github/chaseadamsio/goorgeous/badge.svg?branch=master

goorgeous is a Go Org to HTML Parser.

/github-forks/gitea/src/commit/6322d254e72c7c794f9d2e2325972249f187eae1/vendor/github.com/chaseadamsio/goorgeous/gopher_small.gif

Pronounced: Go? Org? Yes!

"Org mode is for keeping notes, maintaining TODO lists, planning projects, and authoring documents with a fast and effective plain-text system."

The purpose of this package is to come as close as possible as parsing an *.org document into HTML, the same way one might publish with org-publish-html from Emacs.

Installation

  go get -u github.com/chaseadamsio/goorgeous

Usage

Org Headers

To retrieve the headers from a []byte, call OrgHeaders and it will return a map[string]interface{}:

  input := "#+title: goorgeous\n* Some Headline\n"
  out := goorgeous.OrgHeaders(input)
  map[string]interface{}{ 
          "title": "goorgeous"
  }

Org Content

After importing github.com/chaseadamsio/goorgeous, you can call Org with a []byte and it will return an html version of the content as a []byte

  input := "#+TITLE: goorgeous\n* Some Headline\n"
  out := goorgeous.Org(input)

out will be:

  <h1>Some Headline</h1>/n

Why?

First off, I've become an unapologetic user of Emacs & ever since finding org-mode I use it for anything having to do with writing content, organizing my life and keeping documentation of my days/weeks/months.

Although I like Emacs & emacs-lisp, I publish all of my html sites with Hugo Static Site Generator and wanted to be able to write my content in org-mode in Emacs rather than markdown.

Hugo's implementation of templating and speed are unmatched, so the only way I knew for sure I could continue to use Hugo and write in org-mode seamlessly was to write a golang parser for org content and submit a PR for Hugo to use it.

Acknowledgements

I leaned heavily on russross' blackfriday markdown renderer as both an example of how to write a parser (with some updates to leverage the go we know today) and reusing the blackfriday HTML Renderer so I didn't have to write my own!