silkylog is a simple and extensible static site generator written in Go and GopherLua .
go get -u github.com/yuin/silkylog
silkylog site --path=<PATH_TO_NEW_SITE>
silkylog new
silkylog build
silkylog serve
# open your browser with an URL http://localhost:7000
.
+-- src
| +-- articles
| +-- 2015
| +-- 01
| +-- 24_article-slug.md
| +-- 25_article-slug.rst
| +-- extras
| +-- favicon.ico
| +-- 404.html
+-- public_html
+-- themes
| +-- default
| +-- extras
| +-- feeds
| +-- include
| +-- layouts
| +-- pages
| +-- theme.lua
+-- config.lua
An article consists of two parts: a HEADER, followed by the BODY. The header contains information about the article.
The body markup type is decided based on the extension of the filename.
- .md : markdown
- .rst : reStructuredText
:title: Article title
:tags: golang,lua,gopherlua
:status: published
:posted_at: 2015-02-15 22:43:19
:updated_at: 2015-02-15 22:43:19
Article Body
build build my site
clean clean all data
serve serve contents
preview preview contents
help, h Shows a list of commands or help for one command
TODO
- silkylog.runprocessor(cmd string, [cmdopts string, cmdopts string...], text string) -> string
run an external markup processor. A markup processor reads the text from stdin, converts it into a html and prints it to stdout.
- silkylog.htmlescape(text string) -> string
replace special characters with the correct HTML entities.
- silkylog.htmlunescape(text string) -> string
turn HTML character references into their plain text.
- silkylog.urlescape(text string) -> string
replace special characters with single byte characters.
- silkylog.formatmarkup(text string, format string) -> string
convert the
text
written informat
into HTMLs.- silkylog.title(data table) -> string
format the title defined in the
config.lua
with thedata
.- silkylog.path(data table) -> string
format the path defined in the
config.lua
with thedata
.- silkylog.url(data table) -> string
format the url defined in the
config.lua
with thedata
.- silkylog.fullurl(data table) -> string
format the url with domains defined in the
config.lua
with thedata
.- silkylog.copyfile(src, dst string) -> true or (nil, message string)
copy the file
src
to thedst
. return true if no errors were occurred, nil and an error message otherwise.- silkylog.copytree(src, dst string) -> true or (nil, message string)
copy the directory
src
to thedst
. return true if no errors were occurred, nil and an error message otherwise.- silkylog.isdir(path string) -> bool
return true if the
path
is a directory, false otherwise.- silkylog.isfile(path string) -> bool
return true if the
path
is a regular file, false otherwise.- silkylog.pathexists(path string) -> bool
return true if the
path
refers to an existing path, false otherwise.
TODO
TODO
- inforno : My website.
MIT
- [ ] Writing tests
- [ ] Writing documents
- [ ] A nice default site template
- [ ] More Lua APIs
Yusuke Inuzuka