I Gave My Blog Colorized Nested Blockquotes

This blog has colorized nested blockquotes now.






For the colorizing, I used the following CSS code in a plug-in that lets you enter custom CSS. I tried to use a child WordPress theme but was having trouble getting that working.

Without setting the font-size to 100%, the blockquotes were larger than my regular text, and I did not want that.

The font-size being set to 100% seems to cascade down to the nested blockquotes, though, so I only had to set it for the first one.

Thinking, Learning & Activities – October 1, 2020

Trying Out Flashcard Software

In my last post I described my criteria for a good flashcard app as follows:

  • Has an elegant and easy macOS app for making the cards.
  • Has a companion iOS app for reviewing the cards.
  • Does spaced repetition.
  • Makes it easy to add pictures.
  • (Optional) imports from and exports to standard formats like CSV, MS Excel spreadsheets etc.

What looks to be the number one flashcard app on the Mac App Store, Flashcard Hero, has a free version, so I tried that out. There’s no iPhone syncing on the free version though. Alas!
In the course of analyzing Flashcard Hero, I thought of another criterion: Markdown support. I found a Mac app that has that called Mochi. So I’ll be looking at both apps. I first look at and give my general impressions of the respective Mac apps and then proceed quickly through my specific criteria before reaching a conclusion.

Flashcard Hero

macOS App

App interface looks straightforward.

You enter the stimulus/question of the flashcard in the top field and the answer in the bottom.

There are some formatting options and a thing to insert images. Also a multiple choice thing which I’ll show more of later.

In addition to separate decks, you can organize things into topics within decks. If you only want to study some topics, it looks like you can command-click on the topics you want to study and only study those.

When you go into Study Mode, the default is that the app “hides” the answer on the bottom of the card by covering it up with a blank blue card. That’s a bit too skeumorphic for my taste but not a big deal. You can hit command-+ to make the card pretty big.

You can indicate how hard the card was.

Some study mode configuration options. Switching question and answer is a paid version feature, apparently. Incidentally, I much prefer time-limited but uncrippled full versions of software over crippled free versions.

What multiple choice studying looks like.

The “Type” study mode is kinda cool. It blurs out the answer but slowly reveals it as you type. Could be particularly useful for learning languages. The Quizlet app has a study mode that asks you questions first in multiple choice and then makes you type them out, which I found quite effective for learning vocabulary.

“Type” study mode configuration options. Note especially the Letter by letter versus Word by word setting. Letter by letter reveals each word as you go, whereas Word by word doesn’t reveal words until you finish typing them.

There is a thing for tracking your progress. I’m not too interested in that feature so I’m not gonna go over it in detail.

iOS Companion App

Syncing to the companion app is possible outside the scope of the free version.

Spaced Repetition

They support it.

Adding Pictures

Another thing that exists but that I can’t evaluate cuz it’s a paid app feature.

Import and Export Formats

Okay import options.

Some export options but pretty limited.


Flashcard Hero is $12.99 for the macOS app and $2.99 for the iOS app.


macOS App

Mochi initially wants you to login but you can tell it that you wanna do guest mode and make an account later, which is a feature I appreciate.

The interface immediately strikes me as cleaner and more elegant in some way than Flashcard Hero.

They have some default cards to help show you how the interface works. The first view, Notebook view, tries to integrate note-taking and flashcard-building. See this Twitter video for an explanation and this Tweet for some feature explanation. (Note: one downside of Mochi is the documentation is kinda weak, I think because the software is being worked on by just one too-busy guy).

There is a “show all sides” button to make reviewing cards easier.

List view.

Grid view.
They’re big on promoting the use of keyboard shortcuts, which I appreciate.

Even their markdown formatting guide has a keyboard shortcut.

{{brackets}} appears to be formatting they use to hide individual words on a flash card.

You can cross-reference things! “Antiarrhythmic” on the flashcard, with the little document icon next to it, is a clickable link that takes you to the note depicted above.

I’m guessing this menu option is what you use to generate internal links/references.

Three dashes --- are what you use to divide a card into different sides. So the above card has two sides.

The finished card with the “back” initially hidden. This is a minor aesthetic point, but I like this style way more than the skeumorphic approach in Flashcard Hero.

You indicate whether you forgot or remembered a card with the x or ☑️ at the bottom of the flashcard and that determines the next time you’ll review it.

The review timing is configurable.

iOS Companion App

They have one, I haven’t tried it yet.

Spaced Repetition

They support it and market on it heavily.

Adding Pictures

Very easy, can just paste stuff into the Markdown editor.

Import and Export Formats

Pretty limited. This is it for import:

And export is only in the Mochi format.


Pretty expensive for a flashcard app if you want to use the mobile version. Price just for desktop is okay though 🙂

Additional Comment

One thing I noticed Mochi doesn’t have is tags but it looks like they’re adding that soon according to the website.

Conclusion on Flashcard Software

Both apps seem like they would do the job, but I liked Mochi’s support of Markdown and visual style more. OTOH it’s way more expensive if I want the iPhone app, but I think that probably isn’t a dealbreaker for me. Currently leaning towards using Mochi.

👨🏻‍💻 Activities


I signed up for the free tier of the Mailjet email API service. Their free tier seems pretty robust (6000 emails a month!) and I just need something to connect to docassemble for the purpose of having my docassemble server mail me PDFs. Using Mailjet, I successfully mailed a PDF from a test interview, so I accomplished my goal. My understanding is that docassemble and Mailjet are using TLS, which means that the emails are being sent in an encrypted and secure matter. That is very relevant/important to me.

I like the docassemble slack channel. There are a couple of people in particular who are really responsive and take ownership over replying to questions, which is important when you are trying to figure out a new thing that is pretty complex.



I mentioned in my previous post that my knee situation has improved. One thing I didn’t mention was that I’ve been experimenting with ankle weights while doing some exercises. I definitely think they can be worth trying and are fairly cheap. In particular, I find them helpful for adding resistance to things like side leg raises.

Some notes on docassemble

Some notes I took on docassemble, an interview-based document assembly technology platform I am learning some stuff about. I watched this video of a training session at a recent conference and looked at some other resources as well. The video I watched is the beginner tutorial but they have an advanced one I plan on trying soon.

Question Order

docassemble only asks questions it has to based on the logic of the interview and based on which questions are designated as mandatory. So you could have a question in your interview that never gets asked cuz nothing calls it.

docassemble’s default behavior is to use the order of questions in a mandatory question block to determine the order in which to ask questions as demonstrated here. I didn’t predict the ordering of the questions described on that page when I ran the code, because I was expecting the convention to be that the YAML file would be read from top to bottom. I therefore expected the air speed question to be the first one asked, and not the name question. Mandatory blocks are indeed read from top to bottom, so if you have all the question blocks set to mandatory, like in the example discussed here, the ordering would indeed work like how I was initially expecting.

Correction: Actually though, sometimes a mandatory block won’t actually run, as demonstrated here at around 1h30m. See also this timestamp where a technique using the placement of things inside a single mandatory code block and setting a variable for the purposes of flow control is demonstrated.

The default ordering behavior can lead to question ordering that is unintended.

Something I discovered in the docassemble documentation regarding how docassemble handles YAML:

Note that the order of questions or code blocks in the YAML matters where the variable name is the same; the blocks that appear later in the YAML will be tried first.

So consider this toy program:

When trying to evaluate for user_name in the mandatory block, docassemble actually tries to run the code block at the end first, and then I think it sees that user_name is undefined, so then it backs up to the block with the  What is your name? question and tries that.

Use of mandatory blocks

Using a single mandatory block can help keep the logic of an interview easier to trace. See this explanation.

If you use a template file (such as a Word document or PDF), and the template is referenced in a mandatory block, docassemble will try to answer questions for the variables inside the template file without you needing to specify the questions in the YAML file. See here at 2h6m.

Python Object Conventions

This thing about ${user} being the equivalent of ${user.__str__()} and giving you a string representation of the object seems really critical for using docassemble for PDFs based on my past experience with Documate.

Syntax Differences Between YAML Files and Word Doc / PDF Templates

In the docassemble YAML files, when you’re doing string interpolation with a variable the syntax is ${variable} (which is apparently Mako syntax), but in a word doc it’s {{variable}} (this is Jina syntax).