<?xml version='1.0' encoding='utf-8'?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Bhargav Kulkarni</title>
    <link>https://bhargavkulk.github.io</link>
    <description>Blog and research from Bhargav Kulkarni</description>
    <item>
      <title>Website Extras</title>
      <link>https://bhargavkulk.github.io/blog/website-extras.html</link>
      <pubDate>Tue, 22 Jul 2025 00:00:00 +0000</pubDate>
      <guid isPermaLink="true">https://bhargavkulk.github.io/blog/website-extras.html</guid>
      <content:encoded>&lt;div id="preamble"&gt;
&lt;div class="sectionbody"&gt;
&lt;p &gt;Here are few extra things I have access to in my website if I need them.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="_details"&gt;Details&lt;/h2&gt;&lt;p &gt;&lt;code&gt;asciidoctor&lt;/code&gt; has native support for &lt;code&gt;&amp;lt;details&amp;gt;&lt;/code&gt; HTML tag. If I write this
in asciidoc:&lt;/p&gt;

&lt;pre class="highlight"&gt;&lt;code class="adoc language-adoc"&gt;.Click to reveal the answer
[%collapsible]
====
This is the answer.
====&lt;/code&gt;&lt;/pre&gt;
&lt;p &gt;I get this:&lt;/p&gt;
&lt;details&gt;
&lt;summary class="title"&gt;Click to reveal the answer&lt;/summary&gt;
&lt;div class="content"&gt;
&lt;p &gt;This is the answer.&lt;/p&gt;
&lt;/div&gt;
&lt;/details&gt;
&lt;h2 id="_admonitions"&gt;Admonitions&lt;/h2&gt;&lt;p &gt;Admonitions are a neat way to highlight specific information. They are also
supported in &lt;code&gt;asciidoctor&lt;/code&gt;.&lt;/p&gt;

&lt;pre class="highlight"&gt;&lt;code class="adoc language-adoc"&gt;[IMPORTANT]
====
While werewolves are hardy community members, keep in mind the following dietary
concerns:

. They are allergic to cinnamon.
. More than two glasses of orange juice in 24 hours makes them howl in harmony with alarms and sirens.
. Celery makes them sad.

====&lt;/code&gt;&lt;/pre&gt;
&lt;p &gt;Which gets rendered as:&lt;/p&gt;
&lt;div class="admonitionblock important"&gt;
&lt;div class="title"&gt;Important!&lt;/div&gt;

&lt;p &gt;While werewolves are hardy community members, keep in mind the following dietary
concerns:&lt;/p&gt;
&lt;ol  class="arabic"&gt;
&lt;li&gt;
&lt;p&gt;They are allergic to cinnamon.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;More than two glasses of orange juice in 24 hours makes them howl in harmony with alarms and sirens.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Celery makes them sad.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;p &gt;I am still unsure how to style this. I might also have to change the HTML generated.&lt;/p&gt;
&lt;h2 id="_quotes"&gt;Quotes&lt;/h2&gt;&lt;p &gt;Quotes are pretty useful in a website; my main page uses them!&lt;/p&gt;
&lt;p &gt;Here is how you write a quote in asciidoc:&lt;/p&gt;

&lt;pre class="highlight"&gt;&lt;code class="adoc language-adoc"&gt;[quote,Monty Python and the Holy Grail]
____
Dennis: Come and see the violence inherent in the system. Help! Help! I'm being
repressed!

King Arthur: Bloody peasant!

Dennis: Oh, what a giveaway! Did you hear that? Did you hear that, eh? That's
what I'm on about! Did you see him repressing me? You saw him, Didn't you?
____&lt;/code&gt;&lt;/pre&gt;
&lt;p &gt;Which we see as:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p &gt;Dennis: Come and see the violence inherent in the system. Help! Help! I&amp;#8217;m being
repressed!&lt;/p&gt;
&lt;p &gt;King Arthur: Bloody peasant!&lt;/p&gt;
&lt;p &gt;Dennis: Oh, what a giveaway! Did you hear that? Did you hear that, eh? That&amp;#8217;s
what I&amp;#8217;m on about! Did you see him repressing me? You saw him, Didn&amp;#8217;t you?&lt;/p&gt;
&lt;br&gt;
&amp;#8212; &lt;cite&gt;Monty Python and the Holy Grail&lt;/cite&gt;
&lt;/blockquote&gt;
&lt;h2 id="_source_code"&gt;Source Code&lt;/h2&gt;&lt;p &gt;As a computer scientist, my blog for sure will have some code. Source code
listings in asciidoc are simple enough:&lt;/p&gt;

&lt;pre class="highlight"&gt;&lt;code class="adoc language-adoc"&gt;[source,python]
----
print('Hello, World!')
----&lt;/code&gt;&lt;/pre&gt;
&lt;p &gt;Becomes:&lt;/p&gt;

&lt;pre class="highlight"&gt;&lt;code class="python language-python"&gt;print('Hello, World!')&lt;/code&gt;&lt;/pre&gt;
&lt;p &gt;I am still on the fence on whether I should have syntax highlighting. I don&amp;#8217;t
want to fill my blog with code! &lt;code&gt;asciidoctor&lt;/code&gt; has some neat features, like
adding callouts for specific lines. When I see the need to use those features, I
will add styling for them.&lt;/p&gt;
&lt;h2 id="_math"&gt;Math&lt;/h2&gt;&lt;p &gt;&lt;code&gt;asciidoctor&lt;/code&gt; did not have any satisfactory way to render math. The only HTML
output they had used MathJax (that too an older version). I know MathJax to be
slow and the older version is not accessible by screen readers. I could have
done something hacky with Katex but now that most popular browsers support
MathML, I&amp;#8217;d like to use MathML to typeset math in my blog. But, I did not find
any MathML renderers for &lt;code&gt;asciidoctor&lt;/code&gt;. So I wrote one myself. It just shells
out to &lt;code&gt;latexmlmath&lt;/code&gt;, which supports packages like &lt;code&gt;amsmath&lt;/code&gt; and
&lt;code&gt;stmaryrd&lt;/code&gt;(indispensable for wacky computer science theory notation). It was
&lt;em&gt;very easy&lt;/em&gt; to add a new block in &lt;code&gt;asciidoctor&lt;/code&gt;. Here is what my MathML block
looks like:&lt;/p&gt;

&lt;pre class="highlight"&gt;&lt;code class="adoc language-adoc"&gt;[mathml]
++++
\vec{v} \in \mathbb{R}^3 \quad \text{for } x \in \llbracket 0, 1 \rrbracket
++++&lt;/code&gt;&lt;/pre&gt;
&lt;p &gt;which looks like:&lt;/p&gt;
&lt;math xmlns="http://www.w3.org/1998/Math/MathML" alttext="\vec{v}\in\mathbb{R}^{3}\quad\text{for }x\in\llbracket 0,1\rrbracket" display="block"&gt;
  &lt;mrow&gt;
    &lt;mrow&gt;
      &lt;mover accent="true"&gt;
        &lt;mi&gt;v&lt;/mi&gt;
        &lt;mo stretchy="false"&gt;→&lt;/mo&gt;
      &lt;/mover&gt;
      &lt;mo&gt;∈&lt;/mo&gt;
      &lt;msup&gt;
        &lt;mi&gt;ℝ&lt;/mi&gt;
        &lt;mn&gt;3&lt;/mn&gt;
      &lt;/msup&gt;
    &lt;/mrow&gt;
    &lt;mspace width="1em"/&gt;
    &lt;mrow&gt;
      &lt;mrow&gt;
        &lt;mtext&gt;for &lt;/mtext&gt;
        &lt;mo&gt;⁢&lt;/mo&gt;
        &lt;mi&gt;x&lt;/mi&gt;
      &lt;/mrow&gt;
      &lt;mo&gt;∈&lt;/mo&gt;
      &lt;mrow&gt;
        &lt;mo stretchy="false"&gt;⟦&lt;/mo&gt;
        &lt;mn&gt;0&lt;/mn&gt;
        &lt;mo&gt;,&lt;/mo&gt;
        &lt;mn&gt;1&lt;/mn&gt;
        &lt;mo stretchy="false"&gt;⟧&lt;/mo&gt;
      &lt;/mrow&gt;
    &lt;/mrow&gt;
  &lt;/mrow&gt;
&lt;/math&gt;
&lt;p &gt;Pretty neat!&lt;/p&gt;</content:encoded>
    </item>
    <item>
      <title>New Look!</title>
      <link>https://bhargavkulk.github.io/blog/new-website.html</link>
      <pubDate>Tue, 06 Jan 2026 00:00:00 +0000</pubDate>
      <guid isPermaLink="true">https://bhargavkulk.github.io/blog/new-website.html</guid>
      <content:encoded>&lt;p &gt;Inspired by my friend &lt;a href="https://andrewriachi.com/"&gt;Andrew's retro website&lt;/a&gt;, I&amp;#8217;ve
decided to turn back the clock on my website. I got rid of the old CSS entirely.
&lt;sup class="footnote"&gt;[&lt;a id="_footnoteref_1" class="footnote" href="#_footnotedef_1" title="View footnote."&gt;1&lt;/a&gt;]&lt;/sup&gt;
I also tweaked some of the generated code. For example, the old blog/research
index code was a rats nest of &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt;'s and CSS flexbox code that Claude spat out
a long time ago. Turns out a structured list of things separated by columns and
rows can be represented by a &lt;code&gt;&amp;lt;table&amp;gt;&lt;/code&gt;! Who would have thought! There is still
more surgical cleaning up to do. &lt;code&gt;asciidoctor&lt;/code&gt; generates less than desirable
HTML for many of its elements. Fortunately we can change what HTML the scripts
writes, so it should not be &lt;em&gt;too&lt;/em&gt; bad. A weird thing I realized after removing
all the CSS is that no CSS webpages seem to be insanely responsive on small
screens like mobile phones! Which means the very little styling I intend to do
in the future should be fine on all devices. Finally I found these cute little
button/banner images to put in the footer:&lt;/p&gt;
&lt;img loading="lazy" width="88" height="31" fetchpriority="low" src="https://bhargavkulk.github.io/images/emacs.gif"/&gt;
&lt;img loading="lazy" width="88" height="31" fetchpriority="low" src="https://bhargavkulk.github.io/images/sanehtml.gif"/&gt;
&lt;img loading="lazy" width="88" height="31" fetchpriority="low" src="https://bhargavkulk.github.io/images/firefox3.gif"/&gt;
&lt;p &gt;They look so cool! But I could not find banners for Python (which also powers
this site). Now the only thing this site is missing is a &lt;code&gt;&amp;lt;marquee&amp;gt;&lt;/code&gt;. If only
it was not deprecated&amp;#8230;&amp;#8203;&lt;/p&gt;
&lt;section id="footnotes"&gt;&lt;ul&gt;

&lt;li class="footnote" id="_footnotedef_1"&gt;
[&lt;a href="#_footnoteref_1"&gt;1&lt;/a&gt;] There is still &lt;em&gt;some&lt;/em&gt; CSS remaining
&lt;/li&gt;
&lt;/ul&gt;&lt;/section&gt;</content:encoded>
    </item>
    <item>
      <title>My Website</title>
      <link>https://bhargavkulk.github.io/blog/my-website.html</link>
      <pubDate>Fri, 18 Jul 2025 00:00:00 +0000</pubDate>
      <guid isPermaLink="true">https://bhargavkulk.github.io/blog/my-website.html</guid>
      <content:encoded>&lt;p &gt;I have redon my website. Again. The markup is now in
&lt;a href="https://asciidoc.org/"&gt;asciidoc&lt;/a&gt;. I have moved lot of the file wrangling and
renaming code to a makefile. The makefile orchestrates &lt;code&gt;asciidoctor&lt;/code&gt; and
various Python scripts, each of which performs a specific task, such as
extracting metadata, generating blog indexes, or filling in templates. The
templating engine continues to be &lt;a href="https://www.makotemplates.org/"&gt;mako&lt;/a&gt;. I also
took the chance to redo the website styling a bit. I took a lot of inspiration
from &lt;a href="https://perfectmotherfuckingwebsite.com/"&gt;Perfect M- Website&lt;/a&gt;.&lt;/p&gt;</content:encoded>
    </item>
  </channel>
</rss>