blogc
- a blog compiler
blogc
[-d
] [-D
KEY=VALUE ...] -t
TEMPLATE [-o
OUTPUT] SOURCE
blogc
-l
[-e
SOURCE] [-d
] [-D
KEY=VALUE ...] -t
TEMPLATE [-o
OUTPUT] [SOURCE ...]
blogc
-l
[-e
SOURCE] [-d
] [-D
KEY=VALUE ...] -t
TEMPLATE [-o
OUTPUT] [SOURCE ...]
blogc
-l
[-e
SOURCE] -p
KEY [-d
] [-D
KEY=VALUE ...] [SOURCE ...]
blogc
-i
[-d
] [-D
KEY=VALUE ...] -t
TEMPLATE [-o
OUTPUT] < FILE_LIST
blogc
-i
-l
[-e
SOURCE] [-d
] [-D
KEY=VALUE ...] -t
TEMPLATE [-o
OUTPUT] < FILE_LIST
blogc
-i
-l
[-e
SOURCE] -p
KEY [-d
] [-D
KEY=VALUE ...] < FILE_LIST
echo
-e
"SOURCE\n..." | blogc
-i
[-d
] [-D
KEY=VALUE ...] -t
TEMPLATE [-o
OUTPUT]
echo
-e
"SOURCE\n..." | blogc
-i
-l
[-e
SOURCE] [-d
] [-D
KEY=VALUE ...] -t
TEMPLATE [-o
OUTPUT]
echo
-e
"SOURCE\n..." | blogc
-i
-l
[-e
SOURCE] -p
KEY [-d
] [-D
KEY=VALUE ...]
blogc
[-h
|-v
]
blogc compiles source files and templates into blog/website resources. It gets one (or more) source files and a template, and generates an output file, based on the template and the content read from the source file(s). It was designed to be used with make(1).
blogc
works on two modes:
entry
Default mode, first example in SYNOPSIS. Accepts only one source file, and process it as a single entry of the blog/website, like a static page or a post.
listing
Listing mode, second example in SYNOPSIS, activated when calling blogc
with -l
option. Accepts multiple source files, and allow users to iterate
over the content of all the source files to produce listing pages, like
indexes and feeds. By providing another source file to blogc
with -e
option, third example in SYNOPSIS, its content will be available for usage
during listing, similar to the default entry mode. This is useful for users
that want to have an index page with content and posts listing together.
See blogc-template(7) for details.
-d
Activates debug.
-i
Reads list of source files from standard input. Content of standard input is
parsed as a file where each line is a file path. Empty lines and lines
starting with #
are ignored. If some source files are provided to command
line while using this option, they will be parsed before the files read
from standard input.
-l
Activates listing mode, allowing user to provide multiple source files. See blogc-source(7) for details.
-e
SOURCEWhen used together with -l
the source file will be parsed and its content
will be made available for usage in the templates in listing mode via
listing_entry
blocks. This option can be used more than once, so users can
have more than one listing_entry
block in the same template. Passing an
empty string will skip the listing_entry
block. See blogc-template(7) for
details.
-D
KEY=VALUESet global configuration parameter. KEY must be an ascii uppercase string, with only letters, numbers (after the first letter) and underscores (after the first letter). These parameters are available anywhere in templates, but may be overridden by local configuration parameters set in source files. See blogc-template(7) for details.
-p
KEYShow the value of a variable right after the source parsing and exits. This
is useful to get parameters for your Makefile
, like the last page when
implementing pagination, see blogc-pagination(7) for details. This option can
also dump variables defined in a source file, if called without -l
.
-t
TEMPLATETemplate file. It is a required option, if blogc
needs to render something.
See blogc-template(7) for details.
-o
OUTPUTOutput file. If provided this option, save the compiled output to the given
file. Otherwise, the compiled output is sent to stdout
.
-v
Show program name, version and exit.
-h
Show help message and exit.
The blogc
command expects a template file blogc-template(7), one (or more)
source files blogc-source(7) and an output file, if wanted. Templates and source
files must have valid UTF-8 content.
No environment variables are required by blogc
, but global timezone will
be used by locale-dependant datetime input field descriptors (like %c
), and
can be overridden using environment variables. See strftime(3).
Build index from source files:
$ blogc -l -t template.tmpl -o index.html source1.txt source2.txt source3.txt
Build index from source files, with additional content from index.txt
:
$ blogc -l -e index.txt -t template.tmpl -o index.html source1.txt source2.txt source3.txt
Build entry page from source file:
$ blogc -t template.tmpl -o entry.html entry.txt
blogc is based in handwritten parsers, that even being well tested, may be subject of parsing bugs. Please report any issues to: https://github.com/blogc/blogc
Rafael G. Martins <rafael@rafaelmartins.eng.br>
blogc-source(7), blogc-template(7), blogc-pagination(7) make(1), strftime(3)