
Show HN: Miki: Makefile Wiki, Minimal makefile-based personal wiki - a3n
https://github.com/a3n/miki
======
a3n
Creator here.

From the README:

* Write wiki pages in reStructuredText (rst) or Markdown (md). Both types can be in the same wiki.

* Run make to output html, and/or pdf, and/or plain text.

* Read your wiki pages.

* Optionally catalogs any book/media files in your wiki.

No software provided, just a makefile and two convenience scripts.

No templates provided.

Relies on existing tools that you already have or are easy to install.

~~~
a-nikolaev
wonderful work! file system, make, and other standard tools are our best
friends

------
rurban
I don't get it. This is not a wiki. A wiki is a collaboration tool with fast
reads and searches and slow writes. This is a simple static site generator,
such as jekyll/hugo/..., just without the automatic updates, filewatch or http
save triggers. Those generators have all these features, and much more.

To turn this into wiki, add a js library to allow editing and saves (=>
tiddlywiki), and maybe think of markdown javascript renderers (=> reveal-md)

~~~
a3n
Yet, it _feels_ like a personal wiki to me. :)

I think that a focus on low level tools (javascript), or on current and common
implementations as the definition of wiki, is unnecessarily restrictive.

I was going to "count the ways" that Miki can be considered a personal wiki.
It doesn't much matter. It works for me, and I hope maybe a few others.

Instead, I'll propose that Miki, and other tools like it, are in the realm of
personal wiki, in a similar way that Unix is an IDE.
[https://sanctum.geek.nz/arabesque/series/unix-as-
ide/](https://sanctum.geek.nz/arabesque/series/unix-as-ide/)

~~~
frutiger
> low level tools (javascript)

Sincerely confused by this parenthetical statement.

~~~
a3n
rurban, my parent, says "to turn this into a wiki" and then lists javascript
for on-page editing and markdown rendering. That's one way to get it done, of
course.

But for sitting on the couch with your wiki totally contained on your lap in
your laptop, editing in a text editor is a reasonable solution to "edit this
page."

"Render markdown" from the command line is also a reasonable solution in that
(my) scenario.

------
opcon
I've been half-heartedly looking for something exactly like this for a while,
thank you for posting it!

Instead of using Uppity, which appears to be abandoned (?), I found Navigate
Up WE ([https://addons.mozilla.org/en-US/firefox/addon/navigate-
up-w...](https://addons.mozilla.org/en-US/firefox/addon/navigate-up-we/)),
which performs essentially the same functionality and appears to be
maintained.

Thanks again, this will be very useful!

~~~
a3n
And thanks for the bug report on github. :)

I have noticed a warning with uppity due to Mozilla's redesign of their
extension support, but it's still working for me. Thanks for the tip to
Navigate Up.

Not related to the bug, I'm curious what text editor you use. I use Vim, and
the reason why I suggest writing links in your source files ending in .rst or
.md is so that I can go from source to source in Vim, by putting the cursor
over the filename and then _gf_. That, and then _ctrl-o_ to go back, is very
useful to me.

As rst and md are human readable, with a good editor like Vim, you could treat
your source files _as_ the wiki and never generate. Not that I _would_ , but
you _could_.

Do you use a different editor with similar capability?

~~~
opcon
I mainly use Vim, and have tried using both Vimwiki and Org-mode as personal
wikis in the past, but they were never quite what I was looking for.

I like writing the wiki content in Vim, but for viewing it I think I prefer it
as a webpage.

Following file links in Vim is really useful though, I should use it more
often!

~~~
a3n
I also write in Vim and prefer the webpage view.

File links in Vim are really handy in your Miki when you're writing a couple
of pages in a topic and you want to jump back and forth.

Of course in that scenario you can also ':e .' to edit the directory, or use
the vim-included netrw, or install nerdtree.

------
advisedwang
I understand "wiki" to mean something editable by users. I'm not really sure
that this fulfils that. Maybe brand as a site generator?

~~~
a3n
It's a _personal_ wiki, and it is editable by the one user on the local
machine, by editing rst or md source files. Could make it editable by other
users on the local machine through file permissions.

It's purposefully minimal, so no in-page editing, for example. I wanted to
write no software and use what I already have that does the job.

If you want to call it a site generator, I'm fine with that. :)

Personal wikis are a thing, though. TiddlyWiki is more like what you're
expecting, but it's still mostly a local machine thing, notwithstanding their
recent (to me) publishing features.

VimWiki is more like what I've made, except it's specific to vim. Still local.

[https://en.wikipedia.org/wiki/Personal_wiki](https://en.wikipedia.org/wiki/Personal_wiki)

~~~
Brian_K_White
Personal wiki = not a wiki.

vi is a "personal wiki"

------
fao_
It would be cool to have it generate a sitemap from tree(1)

~~~
a3n
Wow, cool. Thanks.

Done.

I thanked you in the commit log.

~~~
fao_
Ah! Neat, thank you!

------
reitanqild
I use asciidoc with asciidocfx and then push it to a git repo.

This way I can keep it in sync between multiple machines.

I'd like to create a webapp with offline capabilities to do this but can't see
myself getting around to it anytime soon.

------
benatkin
This is great. I like how make builds dependencies and uses modification times
to avoid doing unnecessary work. It's a sound concept. Is there anything like
make that uses yaml or JSON as input?

~~~
majewsky
What do you mean by "input"? Do you want a structured data file instead of the
Makefile, or do you want to process structured data inside Makefile rules?

------
exergy
Would it be possible to somehow run this on Windows?

~~~
detaro
The dependencies should all be available, either directly or through cygwin.
And of course there is the Linux subsystem now.

~~~
a3n
Yeah, cygwin would be the first thing I'd try for Windows. In fact I listed
cygwin as a possibility at first, but took it out as I don't have a Windows
machine ATM, so I didn't want to assume.

You can check for cygwin packages on their web search page
[https://cygwin.com/cgi-bin2/package-grep.cgi](https://cygwin.com/cgi-
bin2/package-grep.cgi)

rst2pdf is missing, so _mwk pdf_ and _mwk all_ would fail for rst source
files. You could edit that out of the makefile, or find a replacement and
alias rst2pdf to it.

pandoc is missing from cygwin, but pandoc itself has a windows installer,
[http://www.pandoc.org/installing.html](http://www.pandoc.org/installing.html).

That page suggests a latex package for pdf output, so there's a fighting
chance you could get markdown working in Miki from cygwin if you put the
Windows pandoc in your cygwin path. I've done similar for other tools in the
past.

