This script converts the content of an ikiwiki installation to a content directory for a hugo content directory.
It is heavily based on anarcats ikiwiki2hugo script which itself was inspired by https://blog.jak-linux.org/2018/10/25/migrated-website-from-ikiwiki-to-hugo/ and anarcats notes on the matter.
For every ikiwiki *.mdwn
or *.html
file, it creates a Markdown file with
hugo frontmatter. If
there is a *.po file with the same name, the script creates a *.XX.md
file
with the strings translated.
Then the content is converted:
The ikiwiki [!meta
directives are being converted to hugo
frontmatter. The content
of the Markdown files is a copy of the content of the ikiwiki files with the
ikiwiki directives replaced by hugo
shortcodes. There are a lot
of directives out there and I only
implemented replacements for some of them. My test ikiwiki instance was the
the Tails ikiwiki source, so I mostly
implemented directives used there. Merge requests or patches for additional
directives are welcome- to add a replacement for a directive, look in the
directives
folder, all the replacement python modules inherit from the
Directive
class. The shortcode files are assets/shortcodes
folder.
Usage:
./ikiwiki2hugo <ikiwikidirectory> <hugocontentdirectory>
The script wont overwrite an existing hugo content directory.
Probably the more important question ;)
There are a lot of directives whose replacements are not implemented. Most
important probably the [[!inline
directive with multiple (and negative)
arguments and the [[!map
directive.
Also, hugo
is more strict regarding Markdown syntax. It does not convert
markdown syntax that is embedded in <div>...</div>
.