Reboot the reboot: Le P'tit Aurèle (lexicon of the French-Acadian language)

reference: Reboot: Le P’tit Aurèle (lexicon of the French-Acadian language)

Although better “organized”, my reboot was suffering the same problem as the original project: heavy in the sense of laborious.

I had taken (in the reboot) “proximity” to an extreme (as I had done in the original project), setting up “view-mode presentation” of information so that the “edit-mode” widgets were “right there” and tightly intertwingled with the “view-mode” elements.

When sitting down with a cup of coffee to just enter content, I’d find myself flustered and bogged down when I would need a new field of information: I could not just quickly set up the field (and get back to the business of data entry) because I had to wedge that new field in some big and complex code that could flip between view and edit modes.

The problem with the original project wasn’t a code organization that was working against me. The problem was something else.

So craving the ability to just enter data without getting bogged down, I decided the reboot needs a reboot.

I’ve decided to disentangle “view” from “edit”, so that I can focus on just editing when that is what I want to do, and jump into “view” (or “reader”) mode when that is the itch I need to scratch.

The reboot reboot that just sticks to standard TiddlyWiki interface: https://leptitaurele.tiddlyhost.com/

4 Likes

Oh, anybody wanting to explore that TiddlyWiki should start with the “Word Footer” tiddler.

I’ve decided that in the standard TiddlyWiki view, everything (well, everything that is “content”) is immediately editable via the “Word Footer” (which is tagged as a view template).

1 Like

I’m very much interested in watching the development again.

I had only a little to say last time around, but I was an avid follower of your progress. I can’t wait to see where this goes.

I’m sure hoping that I’ve correctly diagnosed the root cause of my dissatisfaction with both the original project and the first redo.

Feels good so far, but only some decent amount of data entry will provide any proof in the pudding.

Rock’n roll and cannon ball right into the deep end.

The TiddlyWiki.

The focus tonight involved setting up the framework to display “expressions” in which a word might play a part.

Here is the “agrément” word, with a very basic setup to display a list of related expressions:
image

All of those detail elements are from a view template ($:/tags/ViewTemplate) called “Word Footer” (Previously called “Tiddler Footer”):

<$list filter="[{!!title}tag[m]]">
<$let vWord={{!!title}}>

{{Set Phonology and Spelling||tAsDc}}
{{Add Word Ensemble||tAsDc}}
<$list variable="check" filter="[tag<vWord>tag[we]tag[n]] [tag<vWord>tag[we]tag[adj]] +[nth[1]]">
{{Gender and Number||tAsDc}}
</$list>
<$list variable="check" filter="[tag<vWord>tag[we]tag[adj]nth[1]]">

{{Adjective Ensemble||tAsDc}}
</$list>
<$list variable="check" filter="[tag<vWord>tag[we]tag[n]nth[1]]">

{{Noun Ensembles||tAsDc}}
</$list>
<$list variable="check" filter="[tag<vWord>tag[we]tag[pp]nth[1]]">

{{Preposition Ensembles||tAsDc}}
</$list>
<$list variable="check" filter="[tag<vWord>tag[we]tag[pn]nth[1]]">

{{Pronoun Ensembles||tAsDc}}
</$list>
<$list variable="check" filter="[tag<vWord>tag[we]tag[v]nth[1]]">

{{Verb Ensembles||tAsDc}}
</$list>
{{Related Expressions||tAsDc}}
</$let>
</$list>
  • “word” tiddlers are simply tagged with “m”.
  • tAsDc is a template tiddler that displays a tiddler inside of a details element

The “Related Expressions” tiddler:

<$list variable=expr filter="[tag<vWord>tag[e]sort[]]">
  <$list variable=check filter="[<expr>search[...]]">
    <$tiddler tiddler=<<vWord>>>
      <$transclude tiddler=<<expr>>/>
    </$tiddler>
  </$list>
  <$list variable=check filter="[<expr>!search[...]]">
    <<expr>>
  </$list>
  <br>
</$list>
  • this is setup to handle an expression that has variants, so the “template” expression can exist once, tagged with however many words can be used alternatively in the expression, and the expression will be shown correctly for a particular word being viewed (for example: drôle de/d' ..., the “…” could be one of the following words: “agrément”, “moineau”, “amanchure”, etc.)
  • and if the expression does not have any variants, then we just show the expression tiddler’s title

The “drôle de/d’ …” tiddler:

  • tagged with “e” to identify it as an “expression” tiddler
  • tagged with all of the words that could be used in the “…” placeholder" for all of the variants of the expression
  • the body of the tiddler provides the display template for the expression (it figures out whether “de” or “d’” should be used, depending on whether or not the word being displayed starts with a vowel

For testing purposes, the “blah blah blah agrément” expression:

  • to make sure “single variant” expressions are getting grabbed and displayed correctly.

Oh, the “vowels” macro (other vowels pending):

Le P’tit Aurèle reboot of reboot

“Expression” tiddlers now have a footer for editing the meaning of the expression. The footer also lists all of the word tiddlers linked to the expression (via tags), just as a sanity check. (TODO: setup widgets to link words to the expression).

The “Expression Footer” tiddler:

The “Expression Meaning” tiddler:

How the footer appears for the “drôle de/d’ …” expression tiddler:

Other TODO’s:

  • setup ability to add a word to an existing expression via that word’s word tiddler
  • setup ability to create an expression tiddler for a word via that word’s word tiddler (and tagging that expression tiddler with the word)
  • show expressions and expression details in word tiddlers

Wee update:

Instead of the Expression Footer displaying all of the words involved in an expression, it now displays all of the variants for an expression (I.e. show the expression with each of the possible words):

The related code in the “Expression Footer”:

\define le()
<$tiddler tiddler=<<e>>>
      <$transclude tiddler=<<vExpr>> /><br>
</$tiddler>
\end

<$list variable=vExpr filter="[{!!title}tag[e]]">
<hr style="border:1px solid black;">

  <$list variable=check filter="[<vExpr>search[...]]">
    ''
    <$macrocall $name="colList"
                       fv="e"
                       f="[<vExpr>tags[]tag[m]sort[]]"
                       cw=100%
                       i="<<le>>" />
    ''
  </$list>
{{||Expression Meaning}}
</$list>

TODO:

  • don’t bother showing the expression in the footer when it is a single-variant expression (i.e. the expression does not have “…”)
  • if a word that tags an expression is not meant to be part of a variant (I.e. the word is in every variant of an expression; i.e. the word is “hard-coded” in the expression), then exclude it from the tiddlers in the list of variants
1 Like

The previously called “Tiddler Footer” is now called “Word Footer”.

I decided to tidy-up the code in that tiddler. It now looks like:

\define group(t e)
  <$list variable="check" filter="[tag<vWord>tag[we]tag[$t$]nth[1]]">

  {{$e$ Ensembles||tAsDc}}
  </$list>
\end

<$list filter="[{!!title}tag[m]]">
<$let vWord={{!!title}}>

{{Set Phonology and Spelling||tAsDc}}
{{Add Word Ensemble||tAsDc}}
<$list variable="check" filter="[tag<vWord>tag[we]tag[n]] [tag<vWord>tag[we]tag[adj]] +[nth[1]]">

{{Word Gender and Number||tAsDc}}
</$list>
<<group adj Adjective>>
<<group adv Adverb>>
<<group n Noun>>
<<group pp Preposition>>
<<group pn Pronoun>>
<<group v Verb>>
{{Related Expressions||tAsDc}}
</$let>
</$list>

Previous version of the code in this earlier reply.

1 Like

(Link to the TiddlyWiki)

Expression tiddlers are tagged with words in the expression that are defined in the dictionary. For example, the expression “prendre son aplomb” is tagged with the word “aplomb”.

I’ve setup expression tiddlers to show an “expression footer”: a view template that provides widgets to edit expression tiddlers.

To the already “meaning” edit text fields, I’ve added a very simple search for word tiddlers to give me some check boxes in “tag mode”, to tag the expression with related words.

The code for the expression footer:

\define le()
<$tiddler tiddler=<<e>>>
      <$transclude tiddler=<<vExpr>> /><br>
</$tiddler>
\end

<$list variable=vExpr filter="[{!!title}tag[e]]">
<hr style="border:1px solid black;">

  <$list variable=check filter="[<vExpr>search[...]]">
    ''
    <$macrocall $name="colList"
                       fv="e"
                       f="[<vExpr>tags[]tag[m]sort[]]"
                       cw=100%
                       i="<<le>>" />
    ''
  </$list>
{{||Expression Meaning}}

<hr>

''Tag with Word'' :
<br>
search: <$edit-text tiddler="$:/temp/expressionWordsSearch" field="text" tag=input default=""/>

<$list variable=check filter="[{$:/temp/expressionWordsSearch!!text}!is[blank]]">
    <$macrocall $name="colList"
                       fv="w"
                       f="[tag[m]regexp{$:/temp/expressionWordsSearch!!text}sort[]]"
                       cw=10
                       i="<$checkbox tiddler=<<vExpr>> tag=<<w>> > <<w>></$checkbox>" />
</$list>

</$list>

I modified the “Related Expression” section (for word footers). The section was showing a simple list of expressions tagged with the related word. Now, it shows the expressions with the French and English meanings for the expressions.

image

TiddlyWiki project

Added a simple search feature to the “Words List” tiddler:

Details in this other thread.

The TiddlyWiki.

Satisfied with how this project reboot is going, I’ve changed the name of the TiddlyWiki instance on TiddlyHost to “leptitaurele” (the same name as the one for the original project) from the “draft” name I had temporarily given to the “redo” version (lepetitaurele-redo).

Also, satisfied with how the data entry interfaces are working, I’ve started putting together the “Reader Mode” interface (which hides the standard TiddlyWiki interface).

By default, the TiddlyWiki presents “Reader Mode”. To exit “Reader Mode”, press the “X” button:
Screenshot 2025-04-26 8.32.15 PM

When in the standard TiddlyWiki interface, return to “Reader Mode” by clicking on the related button in the sidebar:

Screenshot 2025-04-26 8.35.44 PM

2 Likes