I would like to run something by the group here. I'm thinking of using
TW5 for something that might be slightly off the beaten path for
TiddlyWiki. I would like advice about whether it's worth pursuing, and,
if so, further advice about how to accomplish certain goals.
A friend and I have been developing a functional programming library in
Javascript [1] that's recently started to become fairly popular, which
means that we suddenly have to deal with all sorts of infrastructure
issues we'd previously managed to ignore. High on that list is
documentation. Until now, we'd gotten by with just docco [2] annotated
source code, but users are starting to demand real API documentation as
well. Some volunteers have stepped up to add JSDoc [3] comments to the
codebase.
The trouble is that I don't particularly like any of the common JSDoc
output formats available. It struck me that TW has pretty well
everything that I would want, though. So I hacked together a
hand-crafted proof-of-concept:
<http://ramdajs.com/tw/tiddly.html>
There's still plenty to do, of course. But I would like some feedback
about both the feasibility and the rationality of the approach before I
put too much more into it. The idea is that a function preceded by a
comment like this:
/**
* Returns a single item by iterating through the list, successively
* calling the iterator function and passing it an accumulator value
* and the current value from the array, and then passing the result
* to the next call.
*
* The iterator function receives two values: `(acc, value)`
*
* Note: `ramda.foldl` does not skip deleted or unassigned indices
* (sparse arrays), unlike the native `Array.prototype.reduce` method.
* For more details on this behavior, see: [The MDN
* Article]{@link https://developer.mozilla.org/.../reduce#Description}
*
* @category List
* @signature (a -> b -> a) -> a -> [b] -> a
* @param {Function} fn The iterator function. Signature: a -> b -> a
* @param {Any} acc The accumulator value.
* @param {Array} list The list to iterate over.
* @return {Any} The final, accumulated value.
* @see {@link foldl.idx}
* @see {@link foldr}
* @alias reduce
* @example
*
* var numbers = [1, 2, 3];
* var add = function(a, b) {
* return a + b;
* };
*
* foldl(numbers, add, 10); //=> 16
*/
would end up being documented like this:
<http://ramdajs.com/tw/tiddly.html#foldl>
What I would like to do is to remove the edit/save capabilities of TW
here. And this is where I think I'm straying pretty far from the sweet
spot of TiddlyWiki. I would like to remove the last modified timestamp
as well as the Info and Edit icons from each Tiddler, as well as all the
icons and at least the "Tools" and "More" sidebar tabs. In other words,
what I really want to do is to remove everything which makes this a
dynamic Wiki, leaving behind only an excellent micro-content viewer.
I have no idea yet how to do any of that, but before I even ask about
that, I first want to know if this seems so antithetical to the spirit
of TW that I'd offend people here by even trying it. You see, although I
really love TiddlyWiki for what it is and what it can do, I also really
like the UI it presents for simply viewing micro-content. That's all I
really want to use from it in this case.
If doing that seems reasonable, then I would like to know if there are
decent references around to show me how to turn a TW into this read-only
mode. (What I saw about `zzConfig` or some such I think had something to
do with older versions; at least it didn't work when I tried it; perhaps
the old `systemConfig` is no longer very useful.)
There are several other minor things I would like to do. I'm going to
list them briefly in case someone has quick answers, but I'm not really
expecting to keep people's attention this far, so if I do decide to go
with this, I'll probably be back with more detailed questions. In any
case, here are a few other things:
- I'd like to make a "Signature" module/widget/template/something that
I can feed with source code that looks like "a -> b -> c" and puts
on the browser something where the "->"'s are replaced by Unicode
arrows. I don't have an exact syntax in mind, but something that I
could put on my tiddler that looks something like <$sig
field="signature"/>
- I'd like to create some "Types" tiddlers to describe those types
listed as argument or return types on functions, and then link the
references to them (and possibly also have some way to list the
reverse references from those tiddlers.)
- I'd like to reorganize the sidebar tabs so that the tabs show up in
the order I choose: API, A- Z, Overview, (and if I decide to keep
them) Open, and Recent
Since there are nearly two hundred functions in the library (including
aliases), a long scrolling list is not wonderful. I would like to either
- Turn my (to-become-)long list of categorized functions into an
accordion (there will probably be about ten categories.)
- Find a way to turn this list into some multi-column structure, so
that either each category individually or the entire list spans
three or four columns to fill up the available space better, and
more functions are available to see without scrolling. This would
ideally work for both the main section and the sidebar, but I would
have no issue with handling them separately if necessary.
In any case, if you've made it this far, thanks for reading. I
appreciate your attention, and would love to hear if you think this is a
reasonable use of TW.
Thanks,
-- Scott
[1]: https://github.com/CrossEye/ramda
[2]: http://jashkenas.github.io/docco/
[3]: http://usejsdoc.org/
--
You received this message because you are subscribed to the Google Groups
"TiddlyWikiDev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/tiddlywikidev.
For more options, visit https://groups.google.com/d/optout.