<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ciigo/ciigo.go, branch main</title>
<subtitle>Static web server with AsciiDoc and Markdown.</subtitle>
<id>http://git.kilabit.info/ciigo/atom?h=main</id>
<link rel='self' href='http://git.kilabit.info/ciigo/atom?h=main'/>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/ciigo/'/>
<updated>2026-02-11T15:50:53Z</updated>
<entry>
<title>cmd/ciigo: add option to set base path and shutdown idle duration</title>
<updated>2026-02-11T15:50:53Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2026-02-11T15:50:27Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/ciigo/commit/?id=00dfc937cec1b7eb9ebb1024fae5228ebf9f0341'/>
<id>urn:sha1:00dfc937cec1b7eb9ebb1024fae5228ebf9f0341</id>
<content type='text'>
The `-base-path` option set the URL prefix for serving HTTP request.
This allow serving the content under the prefix other than "/".

The `-shutdown-idle` option set the duration when server will stop
accepting new connections and shutting down.
This option can be helpful to reduce the resources on local environment.
</content>
</entry>
<entry>
<title>all: embed struct [lib/http.ServerOptions] directly to [ServeOptions]</title>
<updated>2026-02-07T09:03:19Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2026-02-07T09:03:19Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/ciigo/commit/?id=3714f15bf29cfb79c3623784e391a7a4854f6815'/>
<id>urn:sha1:3714f15bf29cfb79c3623784e391a7a4854f6815</id>
<content type='text'>
At this point, all of the fields in the struct ServeOptions is the
same with [lib/http.ServerOptions] except IsDevelopment and
ConvertOptions.

For field IsDevelopment we keep in the struct.
For field ConvertOptions we remove it and let the caller pass it on
Serve function or InitHTTPServer method.
</content>
</entry>
<entry>
<title>all: embed CSS and index HTML template using memfs</title>
<updated>2026-01-24T00:11:24Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2026-01-23T08:33:13Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/ciigo/commit/?id=62c2e03409e8f7bc6f3f20df36603344afaf2b3a'/>
<id>urn:sha1:62c2e03409e8f7bc6f3f20df36603344afaf2b3a</id>
<content type='text'>
Previously, with direct embed, every time we change the CSS or index
template, we need to restart the "ciigo serve" command.

Using memfs make us easy to update and see the changes directly, without
restarting the server.
</content>
</entry>
<entry>
<title>go.mod: update pakakeh.go to v0.60.3-0.20260115103415-806359d5462f</title>
<updated>2026-01-15T20:04:33Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2026-01-15T20:04:33Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/ciigo/commit/?id=3f824c2f1c3b86cac390e1541037d50ae5f9cc0b'/>
<id>urn:sha1:3f824c2f1c3b86cac390e1541037d50ae5f9cc0b</id>
<content type='text'>
This update have changes on [lib/http.FSHandler] that return second
parameter, status code.
</content>
</entry>
<entry>
<title>Release ciigo v0.15.3 (2025-12-27)</title>
<updated>2025-12-27T06:41:08Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2025-12-27T06:41:08Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/ciigo/commit/?id=2aedfd279a082fb3a6c05ae9f70b01005f499ef9'/>
<id>urn:sha1:2aedfd279a082fb3a6c05ae9f70b01005f499ef9</id>
<content type='text'>
This is the last release for year 2025.

In the README, we fix broken "Change log" link when rendered on pkg.go.dev
and sr.ht sites.

The go.mod has been updated to use minimum Go 1.24.0; and all dependencies
has been updated to latest release.

Happy holidays!
</content>
</entry>
<entry>
<title>Release ciigo v0.15.2 (2025-04-18)</title>
<updated>2025-04-18T13:04:59Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2025-04-18T13:04:59Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/ciigo/commit/?id=554fd460dac71943b4a0875d99621e109d844912'/>
<id>urn:sha1:554fd460dac71943b4a0875d99621e109d844912</id>
<content type='text'>
This release update the core asciidoctor-go module that brings several new
features.

[NEW FEATURE] **Support include directive inside block code.**

Example of block code with include directive,

----
...
include::file[]
...
----

[NEW FEATURE] **Support document attribute "docdir".**

The "docdir" attribute contains the full path of the directory that
contains the source document.
By default it is set to the directory where the Document resided.

[NEW FEATURE] **Add default HTML stylesheet**.

The generated HTML now contains the default stylesheet.
The stylesheet is copied from HTML file generated by Asciidoctor
v2.0.23.

</content>
</entry>
<entry>
<title>Release ciigo v0.15.1 (2025-02-01)</title>
<updated>2025-02-01T02:49:49Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2025-02-01T02:49:49Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/ciigo/commit/?id=4c38d5303c0f2d4af9f75452989951a36652c953'/>
<id>urn:sha1:4c38d5303c0f2d4af9f75452989951a36652c953</id>
<content type='text'>
[BUG FIX]
Fix section detected as paragraph after list and comment.
Previously, given the following markup,
----
* Sub list
+
Sub list content.

//}}}
//{{{
== Sub 2
//}}
----
The section "Sub 2" will be parsed as paragraph instead of new section.

[CHORE]
In the linter, we replace the fieldalignment and shadow using our internal
gocheck command.
This linters actually have an API that can be combined into a program,
which provided by package "pakakeh.go/lib/goanalysis".
</content>
</entry>
<entry>
<title>Release ciigo v0.15.0 (2025-01-08)</title>
<updated>2025-01-07T17:02:27Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2025-01-07T17:02:27Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/ciigo/commit/?id=9130f2350eff5710b14ec6aeda7ddccd944c643c'/>
<id>urn:sha1:9130f2350eff5710b14ec6aeda7ddccd944c643c</id>
<content type='text'>
This is the first major release of ciigo on the new year of 2025.
We bring many enhancements and update on the documentation.

[ENHANCEMENT]
The first changes is refactoring to use watchfs/v2. The [watchfs/v2]
bring new enhancements by watching only single file instead of all
markup files for changes. This minimize number of goroutine calling
[os.Stat] on each markup files.

[BUG FIX]
When listing the file markups, if the node is symlink (either file or
directory) and target its not exist, continue to the next node instead
of returning error. The same is true for directory that cannot be
opened, probably due to broken symlink or permission.

[ENHANCEMENT]
In development mode, where [ServeOptions.IsDevelopment] is set to true
or when running "ciigo serve", the ciigo HTTP server will check if the
new markup file is newer than HTML file when user press refresh or
reload on the browser. If its newer, it will convert the markup file and
return the new content of HTML file.

This allow quick preview without waiting for watcher to complete.

[ENHANCEMENT]
The README has been revamped to include section on how to install ciigo
as program, how to running ciigo convert and serve, how to write content
and view it live on browser, and how to deploy it.

On the section "ciigo as library" we point the user the sample code at
"internal/cmd/ciigo-example" instead of writing long code at the front.

[BUG FIX]
This release also fix Exclude option does not get processed when calling
GoEmbed, or running "ciigo embed".
</content>
</entry>
<entry>
<title>all: fix GoEmbed that does not excludes options from ConvertOptions</title>
<updated>2025-01-07T16:19:47Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2025-01-07T16:19:47Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/ciigo/commit/?id=67a080cd6d2b08a192ad4b6977358645616ddb65'/>
<id>urn:sha1:67a080cd6d2b08a192ad4b6977358645616ddb65</id>
<content type='text'>
</content>
</entry>
<entry>
<title>all: ignore error when scanning for file markups</title>
<updated>2025-01-06T17:13:55Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2025-01-05T19:51:20Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/ciigo/commit/?id=4a4ed2dce4ea4d9448d5aa03ea4040af202d2520'/>
<id>urn:sha1:4a4ed2dce4ea4d9448d5aa03ea4040af202d2520</id>
<content type='text'>
When listing the file markups, if the node is symlink (either file or
directory) and target its not exist, continue to the next node instead
of returning error.
The same is true for directory that cannot be opened, probably due to
broken symlink or permission.
</content>
</entry>
</feed>
