ZIMWRITERFS(1)

🌸 ZIMWRITERFS(1) 🌸

okay bestie, welcome to zimwriterfs πŸ’– it's a User Command, it lives in section 1 of the manual, and it is literally the glow-up your plain ol' folder of HTML deserves. Let's get into it 🫢


✨ NAME ✨

zimwriterfs β€” creates ZIM files from a locally-stored directory. that's it, that's the whole vibe. πŸŽ€


πŸ¦‹ SYNOPSIS πŸ¦‹

zimwriterfs [mandatory arguments] [optional arguments] HTML_DIRECTORY
ZIM_FILE

so yeah, mandatory stuff first, optional stuff after, and then two positional besties at the end. no cap. ✨


πŸ’… DESCRIPTION πŸ’…

🌈 Mandatory arguments:

these are not optional, babe. you need them. periodt.

  • -w, --welcome β€” the path of the default/main HTML page. and listen, the path has to be relative to HTML_DIRECTORY. no absolute paths, no exceptions, iykyk. 🌸
  • -f, --favicon β€” the path of the ZIM file favicon. this path must also be relative to HTML_DIRECTORY, and the image needs to be a 48x48 PNG. yes, exactly 48 by 48. the icon is the main character, let it serve. πŸ‘‘
  • -l, --language β€” the language code of the content, in ISO639-3. that's the three-letter one, bestie. 🌍
  • -t, --title β€” the title of the ZIM file. give it a name, it deserves one πŸ’–
  • -d, --description β€” a short description of the content. short!! don't write an essay. πŸ“
  • -c, --creator β€” the creator(s) of the content. plural is allowed, go off. ✨
  • -p, --publisher β€” the creator of the ZIM file itself. which is... not the same thing as the content creator, so don't mix them up πŸ™ˆ
  • HTML_DIRECTORY β€” the path of the directory containing the HTML pages you want to put in the ZIM file. this is your source material, your raw material, your moment. πŸ“
  • ZIM_FILE β€” the path of the ZIM file you want to obtain. this is the output. the final look. the reveal. πŸ’…

πŸŽ€ Optional arguments:

these are the little extras, the accessories to the outfit, the cherry on top. lowkey the best part tbh.

  • -v, --verbose β€” prints processing details on STDOUT. she's chatty and we love that for her. πŸ—£οΈ
  • -h, --help β€” prints this help. a classic. an icon. 🫢
  • -m, --minChunkSize β€” number of bytes per ZIM cluster. the default is 2048. don't touch it unless you know what you're doing, fr fr.
  • -x, --inflateHtml β€” tries to inflate HTML files before packing (*.html, *.htm, ...). note the word "tries" β€” it's doing its best. 🌸
  • -u, --uniqueNamespace β€” puts everything in the same namespace 'A'. and btw this might be necessary to avoid problems with dynamic/javascript data loading, so if your JS is acting up, this is your girl. πŸ”₯
  • -r, --redirects β€” the path to the TSV file with the list of redirects. the format is url, title, target_url, tab separated. keep the tabs, bestie, the tabs are load-bearing. πŸ¦‹
  • -i, --withFullTextIndex β€” index the content and add it to the ZIM. searchable content, we stan. ⭐
  • -a, --tags β€” tags, semicolon separated. so many tags. tag it up. 🏷️
  • -n, --name β€” a custom (version independent) identifier for the content. version independent!! she doesn't change when the version does. iconic. πŸ‘‘

🧚 EXAMPLE 🧚

here's the moment you've been waiting for, the actual real-life usage, no edits:

zimwriterfs --welcome=index.html --favicon=m/favicon.png --language=fra
--title=foobar --description=mydescription --creator=Wikipedia
--publisher=Kiwix ./my_project_html_directory my_project.zim

look at that. --language=fra, title foobar, description mydescription, creator Wikipedia, publisher Kiwix, directory ./my_project_html_directory, output my_project.zim. chef's kiss, ate, no crumbs. πŸ’–


πŸ’€ REPORTING BUGS πŸ’€

found a bug? not the cute kind? report it to <https://github.com/openzim/zimwriterfs> πŸ› (yes, the angle brackets are part of it, that's just how it's written, don't @ me).


and that's the whole page bestie!! 🌈 this manual page is from OpenZIM, dated June 2018 β€” a vintage serve, honestly, and it still hits. now go make some ZIM files, you've got this πŸ’…βœ¨πŸ¦‹πŸ’œ