King James Bible Wiki

Thanks @Scott_Sauyet - This is awesome and I will pull it to see if I can understand the logic.

I’ve been looking for a way to incorporate my daily studies into TiddlyWiki - and am playing with various Bibles from various folks - and this is a treasure.

Thanks Again!

TwN00b

You’re quite right. I don’t know why I’ve gotten in the habit not only of manually creating these fields when I generate tiddlers, but also of putting the effort into setting the timestamps so that the Recent tab is in a particular order. It’s ridiculous, and I will try to stop. Fixing this reduced the formatted JSON by 3MB and, as you said, reduced the generated wiki by 2MB. Thank you…

Thank you. I do the same sort of thing fairly often. In this case, I would prefer to do it at the source: my JS generation of the tiddlers. But I learned something very useful from your code. I would probably have done

<$action-deletefield $timestamp="no" creator/>
<$action-deletefield $timestamp="no" modifier/>
<$action-deletefield $timestamp="no" created/>
<$action-deletefield $timestamp="no" modified/>

I didn’t realize that I could do it in one go. Nice!

(Also, for when these things get more complex, thank you very much for Commander!)


The updated code is at:

http://scott.sauyet.com/Tiddlywiki/Demo/KingJamesBible/v2

The updated source material is at:

http://scott.sauyet.com/Tiddlywiki/Demo/KingJamesBible/v2/sources/

And the updated (and simplified) conversion script is at

http://link.sauyet.com/kjv2

1 Like

:smiley:

Bingo!

If you have a reasonable grasp of ViewTemplates, then there is little to understand.

$:/_/bible/templates/book is a simple template using a TOC macro, as is King James Bible. Verses don’t need any template for now. The only real complexity is in $:/_/bible/procedures/chapter and $:/_/bible/templates/chapter, which calls it. And I will soon raise a topic asking how to simplify that.

Really nicely done.

I wish all books were presented like so. I’m anewed reminded of the Text Slicer Edition

I have seen Text Slicer, but haven’t yet used it. This was simpler, since I started with one JS object/JSON record per verse.

I don’t particularly. I read very linearly. While I sometimes use a Kindle, I’m still mostly a dead-trees reader. This is mostly speculation that others would find it useful. It would be more useful still in my mind if, say, Genesis transcluded all its chapters, but I couldn’t get that to work. That’s one of the questions I’m planning on asking.

And of course this is also a learning opportunity. I’ve never built a wiki with nearly this many tiddlers. I didn’t know how it would perform.

Is nicely done - and very usable. By removing the timestamp fields makes ‘Recent’ tab only show tiddlers the user enters as notes and such.

The data would be a great candidate for the upcoming MWS plugin - organized as recipes and bags stored server-side in the SQLite database. Performance would be greatly enhanced as would only retrieve content the user selects.

Absolutely. I can easily imagine each chapter as a bag, with fairly obvious recipes.

I still don’t recall my motivation for doing so the first time early last year, but I’ve been auto-creating timestamps since for all my generated-tiddler wikis since then. In retrospect, it feels ridiculous.

I do the same thing - rule # 1 - tiddlers have a title, created, and modified field. But there are exceptions that make the rule - :slight_smile:

Do you have a good reason for it? I thought I did, but for the life of me, I can’t recall it.

But at the chapter level your creation does present the text linearly. It could be extended to also allow the full book to be presented linearly (in contrast to the current display that lists the chapters which, by the way, most regular books also do of course).

I’m writing up my most significant question raised by creating this wiki. After that I’ll write up my second one, which is why it failed when I attempted to do that. (I need a little more research first; I suspect it might have to do with transclusion not knowing about ViewTemplates, but I’m not sure.)

So yes, I wanted to render full Books, and if it was too painfully slow, the entire bible as well.

I use the timestamp fields a lot - especially important if keeping a history of tiddler changes, if have a lot of transcluded tiddlers - can use a filter to select when the trancluded tiddler was modified which helps in debugging why tiddler that transcludes it - is broke.

Some tiddlers are time sensitive - updating data from an external source using http request.

Ultimately TiddlyWiki - " You can think of tiddlywiki as a database in which the records are tiddlers." - see https://tiddlywiki.com/static/Filters.html . It is normal practice for databases to timestamp records.

But don’t they still get a modified date on change, or do they need to have timestamps already? To me these are data tiddlers that usually would never get changed.

Sure, but in this case, the relevant dates look more like 1000 BCE, 90 AD, or perhaps 1611 AD. :slight_smile:

Right. If you hadn’t seen it, I started a discussion on another recent project to help document this.

Yes, but in space-constrained locations like TWs, “normal practice” still needs to be justified. If you’re never going to use it, why take up memory and user attention with unnecessary fields?


I’m sorry; the above sounds argumentative. I really don’t mean to be. Now that I stop and think about this habit for myself, I found that I can’t see the reasons. Thank you for sharing yours.

Sounds like blasphemy

Thanks @Scott_Sauyet for putting this together! In addition to everything else, it seems like a nice dataset for testing and demonstrating TiddlyWiki. Such as the mws, as mentioned above, and perhaps the books can be put into plugins to demonstrate how plugins can carry contents

When I get time, it would also be interesting to see if the liturgy and the texts of the Mass would fit in a TiddlyWiki - the shifting and reuse of text seems like an excellent task for TiddlyWiki. Maybe even the Liturgy of the Hours. The multilingual aspect is also an interesting challenge to demonstrate the power of TiddlyWiki

1 Like

:slight_smile:
I should use the creator/modifier field!

I’ve created a new version.

The new wiki is at

http://scott.sauyet.com/Tiddlywiki/Demo/KingJamesBible/v3/

Supporting material is in:

http://scott.sauyet.com/Tiddlywiki/Demo/KingJamesBible/v3//sources

and the code that generates the tiddlers from their raw form is at:

http://link.sauyet.com/kjv3.

(I may look to move this to GitHub Pages for future releases; I haven’t decided.)

There are two changes.

First, I fix the problem with what seemed to me an inappropriately written template, as described in #10170. I’m no longer generating wikitext from my templates and then calling wikify on it.

Second, I add hooks for CSS styling. Now the generated HTML for a chapter looks something like this:

<div class="chapter">
<!--        ^^^^^^^^                     -->
  <p>
    <span class="verse">
<!--             ^^^^^                   -->
      <sup class="verse-number"><a class="tc-tiddlylink tc-tiddlylink-resolves" href="#Genesis%201%3A1">1</a></sup>
<!--v             ^^^^^^^^^^^^           -->
      <span class="text">In the beginning God created the heaven and the earth.</span>
<!--               ^^^^                  -->
    </span>
  
    <span class="verse">
      <sup class="verse-number"><a class="tc-tiddlylink tc-tiddlylink-resolves" href="#Genesis%201%3A2">2</a></sup>
      <span class="text">And the earth was without form, and void; and darkness <em>was</em> upon the face of the deep. And the Spirit of God moved upon the face of the waters.</span>
    </span> 
  </p>

  <p>
    <span class="verse">
      <sup class="verse-number"><a class="tc-tiddlylink tc-tiddlylink-resolves" href="#Genesis%201%3A3">3</a></sup>
      <span class="text">And God said, Let there be light: and there was light.</span>
    </span>
  
    <span class="verse">
      <sup class="verse-number"><a class="tc-tiddlylink tc-tiddlylink-resolves" href="#Genesis%201%3A4">4</a></sup>
      <span class="text">And God saw the light, that <em>it was</em> good: and God divided the light from the darkness.</span>
    </span>
  
    <span class="verse">
      <sup class="verse-number"><a class="tc-tiddlylink tc-tiddlylink-resolves" href="#Genesis%201%3A5">5</a></sup>
      <span class="text">And God called the light Day, and the darkness he called Night. And the evening and the morning were the first day.</span>
    </span>
  </p>
  <!--  ...  -->
</div>

Now on to get better templates for verses and books!

3 Likes

Actually, reflecting on you potential reasons here for tucking the text into a more obscure field (even though I continue to discourage that approach) … perhaps there should be some way in which all the actual KJV text content should live in shadow tiddlers… so that if someone accidentally mangles a verse in edit mode (or starts adding their commentary inline, bypassing the notes field), or deletes a chapter tiddler, etc. the solution recovers very easily.

I don’t understand the technical details of how shadows work, especially when you would not want the core content bogged down with system-name-space complexity… but worth checking into, perhaps?

If someone does want to mess with the text field of a verse (say, to make what they consider a translation correction), then this kind of edit should count as something like overwriting a shadow, no?

[@Scott_Sauyet , I initially posted this comment at your other thread, but I just moved it here, since it’s really not about that nested transclusion topic, but rather about best practice for a text that has a not-really-user-editable archival character.)

Two more thoughts about notes and user markup (for this and any other text has canonical version, and that is heavily commented):

It might make sense not to put the notes in a verse-specific (or chapter-specific) tiddler within a notes field.

Multiple reasons:

(1) Notes may correspond to a range (such as the set of verses corresponding to a paragraph — and you don’t have tiddlers for paragraph, though you could…), and may also be comparative in less local ways. Instead of a “compare to [[link here]] passage” located at one tiddler, a thematic "look at differences among [[this]] and [[that]] and [[the other]]" would not be tied to any one of them, but would be displayed on a view template that looks for backlinks (or the notes tiddlers have a field for verse details, etc.)

(2) relating to the shadow-tiddler issue: restoring-to-shadow would delete notes, but you might want something like a restore-kjv-content-to-shadow to be available without losing user notes.

Another thought: this is a case where some tool for semantic highlighting might really be in demand. How to store the highlighting info, toggle display on and off, assign colors and other style info, and make something like a user-configurable semantic key for the various classes involved…? Highlights, like textual notes, may ultimately deserve their own tiddler with metadata (highlighted when, by what user, with what semantic class…)

This also might be a case where something like the keywords plugin — that holds the keywords outside of the target tiddlers (sorry I can’t find it here) — would be a natural fit.

Of course, @Scott_Sauyet, this shouldn’t turn into a “no good deed goes unpunished” adventure… You might not want to tackle any of this yourself! But thinking about a showcase edition, it strikes me that there are many texts (including some in my academic field) that attract close reading, where your KJV project can illustrate best design practices for holding canonical content alongside user marks/notes.

Especially ambitious reach for future project embellishment: canonical text structural tiddlers can toggle display between different translations, or show them side by side. :open_mouth:

@Scott_Sauyet - I’m not sure which of your “bible wiki” threads to post this is so I’m posting it here as it seems to be the most general one.

I just wanted to share a cool scrolling feature here (i.e the solution there by Timani Afif). I’m thinking that the reader of such a huge text would benefit from seeing a “hierarchical position” where he’s at, by “stacking” the heading levels like illustrated there.

Just an idea.

1 Like