<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <title>alfin K</title>
    <subtitle>I plan to use this place to document my work, keep short notes for easy reference and write about things I might forget.</subtitle>
    <link rel="self" type="application/atom+xml" href="https://alfii.pages.dev/atom.xml"/>
    <link rel="alternate" type="text/html" href="https://alfii.pages.dev"/>
    <generator uri="https://www.getzola.org/">Zola</generator>
    <updated>2026-07-03T00:00:00+00:00</updated>
    <id>https://alfii.pages.dev/atom.xml</id>
    <entry xml:lang="en">
        <title>Bare Metal C</title>
        <published>2026-06-29T00:00:00+00:00</published>
        <updated>2026-07-03T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Alfin
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://alfii.pages.dev/bare-metal-C/"/>
        <id>https://alfii.pages.dev/bare-metal-C/</id>
        
        <content type="html" xml:base="https://alfii.pages.dev/bare-metal-C/">&lt;p&gt;These are some notes for this topic based on these references:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Bare Metal C&lt;&#x2F;em&gt; by &lt;em&gt;Stephen Oualline&lt;&#x2F;em&gt; published by &lt;em&gt;No Starch Press&lt;&#x2F;em&gt;.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;Basics&quot;&gt;Basics&lt;a class=&quot;zola-anchor&quot;
   href=&quot;#Basics&quot;
   aria-label=&quot;Anchor link for: Basics&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;Arrays_and_Pointers&quot;&gt;Arrays and Pointers&lt;a class=&quot;zola-anchor&quot;
   href=&quot;#Arrays_and_Pointers&quot;
   aria-label=&quot;Anchor link for: Arrays_and_Pointers&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h3&gt;
&lt;p&gt;They are very simmilar but differ in terms of how they are declared:&lt;&#x2F;p&gt;
&lt;pre&gt;&lt;code&gt;int array[5] = {1,2,3,4,5};
int* arrayPtr = array; &#x2F;&#x2F; note we used array and not &amp;amp;array
                       &#x2F;&#x2F; array is already a ptr
int i = array[1];
&#x2F;&#x2F; is same as
int i = *(arrayPtr + 1);
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;h2 id=&quot;Linker_Models&quot;&gt;Linker Models&lt;a class=&quot;zola-anchor&quot;
   href=&quot;#Linker_Models&quot;
   aria-label=&quot;Anchor link for: Linker_Models&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;Ideal_C_Model&quot;&gt;Ideal C Model&lt;a class=&quot;zola-anchor&quot;
   href=&quot;#Ideal_C_Model&quot;
   aria-label=&quot;Anchor link for: Ideal_C_Model&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h3&gt;
&lt;p&gt;There are 3 standard sections: &lt;code&gt;text&lt;&#x2F;code&gt;, &lt;code&gt;data&lt;&#x2F;code&gt;, &lt;code&gt;bss&lt;&#x2F;code&gt;. &lt;code&gt;text&lt;&#x2F;code&gt; is where read-only data go to. &lt;code&gt;data&lt;&#x2F;code&gt; is the place for initialized data. &lt;code&gt;bss&lt;&#x2F;code&gt; is for uninitialized data. Use &lt;code&gt;size&lt;&#x2F;code&gt; to view each sections.&lt;&#x2F;p&gt;
&lt;pre&gt;&lt;code&gt;$ size example.o
    text    data    bss     dec     hex     filename
     481       4      4     489     1e9     example.o
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;&lt;code&gt;dec&lt;&#x2F;code&gt; is the total number and &lt;code&gt;hex&lt;&#x2F;code&gt; is the total in hexadecimal. Those sections are allocated by the compiler. However there are two more sections &lt;code&gt;stack&lt;&#x2F;code&gt; and &lt;code&gt;heap&lt;&#x2F;code&gt; which is allocated by the linker.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;GCC_flags&quot;&gt;GCC flags&lt;a class=&quot;zola-anchor&quot;
   href=&quot;#GCC_flags&quot;
   aria-label=&quot;Anchor link for: GCC_flags&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;-Wall -Wextra * : To print warning messages for code that is correct but
questionable.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;-Wa, &amp;lt;ASM_FLAGS&amp;gt; * : Pass flags that follow to assembler&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;-Wl, &amp;lt;LD_FLAGS&amp;gt; * : Pass flags that follow to the linker&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;Bit_Twidling&quot;&gt;Bit Twidling&lt;a class=&quot;zola-anchor&quot;
   href=&quot;#Bit_Twidling&quot;
   aria-label=&quot;Anchor link for: Bit_Twidling&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;pre&gt;&lt;code&gt;PORTD = (1 &amp;lt;&amp;lt; 3) &#x2F;&#x2F; sets the 3rd bit to 1
PORTD |= (1 &amp;lt;&amp;lt; 3) &#x2F;&#x2F; sets the 3rd bit to 1 keeping rest of them same

PORTD |= (1 &amp;lt;&amp;lt; 3) | (1 &amp;lt;&amp;lt; 5) &#x2F;&#x2F; set multiple bits; 
                             &#x2F;&#x2F; keeping the rest of them same

PORTD &amp;amp;= ~(1 &amp;lt;&amp;lt; 3) &#x2F;&#x2F; unset a bit; keeping others same
PORTD &amp;amp;= ~((1 &amp;lt;&amp;lt; 3) | (1 &amp;lt;&amp;lt; 5)) &#x2F;&#x2F; unset multiple bits;
                                &#x2F;&#x2F; keeps rest of them same
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;h2 id=&quot;Select_Problems&quot;&gt;Select Problems&lt;a class=&quot;zola-anchor&quot;
   href=&quot;#Select_Problems&quot;
   aria-label=&quot;Anchor link for: Select_Problems&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;em&gt;&lt;em&gt;Chapter 4&lt;&#x2F;em&gt; :&lt;&#x2F;em&gt;
Extracting bits 2 and 3 from an 8 bit register&lt;&#x2F;p&gt;
&lt;pre&gt;&lt;code&gt;uint8_t parity = (IO_REG &amp;gt;&amp;gt; 2) &amp;amp; 0x03
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Learning about USB protocol with a RISC-V board</title>
        <published>2026-06-22T00:00:00+00:00</published>
        <updated>2026-06-22T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Alfin
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://alfii.pages.dev/getting-familiar-with-usb/"/>
        <id>https://alfii.pages.dev/getting-familiar-with-usb/</id>
        
        <content type="html" xml:base="https://alfii.pages.dev/getting-familiar-with-usb/">&lt;p&gt;I stumbled upon this project called
rv003usb&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;cnlohr&#x2F;rv003usb&quot;&gt;[1]&lt;&#x2F;a&gt; by cnlohr. It features a
bit-banged USB controller for the RISC-V CH32V003 MCU. I was always interested
in learning more about the protocol and since I have a lot of free time
due to sem breaks I will try to play around with this software. This article
will document interesting things I find in the process for future reference.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;cnlohr&#x2F;rv003usb&quot;&gt;[1]&lt;&#x2F;a&gt; &lt;code&gt;https:&#x2F;&#x2F;github.com&#x2F;cnlohr&#x2F;rv003usb&lt;&#x2F;code&gt;&lt;&#x2F;p&gt;
&lt;h2 id=&quot;Hardware&quot;&gt;Hardware&lt;a class=&quot;zola-anchor&quot;
   href=&quot;#Hardware&quot;
   aria-label=&quot;Anchor link for: Hardware&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;I got a CH32V006 dev board and its programmer WCH.linkE from WeActStudios on
aliexpress. They have schematics uploaded on their github page, which shows
some interesting connections related to this rv003usb project. Maybe the board
supports programming directly using the on-board USB-C by first flashing the
bootloader USB bit-banged code. I will have to verify it later.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;Software_Stack&quot;&gt;Software Stack&lt;a class=&quot;zola-anchor&quot;
   href=&quot;#Software_Stack&quot;
   aria-label=&quot;Anchor link for: Software_Stack&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;So cnlohr has a nice repo with a lot of built in functionality
&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;cnlohr&#x2F;ch32fun&quot;&gt;[2]&lt;&#x2F;a&gt;. This project is an attempt to
decouple essential functionality from the official IDE, so that a lightweight
toolchain is available for these boards. However I still need the
RISC-V GCC compiler in my system. I use Gentoo, here is how I set it up using
crossdev:&lt;&#x2F;p&gt;
&lt;h3 id=&quot;Gentoo_riscv_toolchain_installation&quot;&gt;Gentoo riscv toolchain installation&lt;a class=&quot;zola-anchor&quot;
   href=&quot;#Gentoo_riscv_toolchain_installation&quot;
   aria-label=&quot;Anchor link for: Gentoo_riscv_toolchain_installation&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h3&gt;
&lt;p&gt;To start development we need the riscv 32bit bare metal toolchain which has
the assembler, compiler, linker and a &lt;code&gt;glibc&lt;&#x2F;code&gt; replacement called &lt;code&gt;newlib&lt;&#x2F;code&gt;. We
probably won&#x27;t need to use &lt;code&gt;newlib&lt;&#x2F;code&gt; since ch32fun provides a lot of
functionality out of the box. We need to first emerge &lt;code&gt;sys-devel&#x2F;crossdev&lt;&#x2F;code&gt; if
not already installed. To configure crossdev refer the wiki as it gives
multiple options.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;em&gt;Note: crossdev is a collection of scripts which can generate e-builds for
portage to build cross-development toolchains. (Handles all the symlinking
to your system GCC and all that stuff)&lt;&#x2F;em&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Now that crossdev is configured we can compile our toolchain using a single
command:&lt;&#x2F;p&gt;
&lt;pre&gt;&lt;code&gt;crossdev --target riscv32-unknown-none-newlib
&#x2F;&#x2F; this next command is equivalent but your binary name will be different and 
&#x2F;&#x2F; shorter for example: your gcc will now be riscv32-unknown-elf-gcc instead 
&#x2F;&#x2F; of riscv32-unknown-none-newlib-gcc
crossdev --target riscv32-unknown-elf

&#x2F;&#x2F; command to uninstall in case of errors; read gentoo wiki for more details
crossdev --clean --target &amp;lt;target&amp;gt;
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;h3 id=&quot;WCH.LINK-E_programmer_setup_and_tips&quot;&gt;WCH.LINK-E programmer setup and tips&lt;a class=&quot;zola-anchor&quot;
   href=&quot;#WCH.LINK-E_programmer_setup_and_tips&quot;
   aria-label=&quot;Anchor link for: WCH.LINK-E_programmer_setup_and_tips&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h3&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Trying out Typst</title>
        <published>2026-06-17T00:00:00+00:00</published>
        <updated>2026-06-17T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Alfin
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://alfii.pages.dev/Using-typst/"/>
        <id>https://alfii.pages.dev/Using-typst/</id>
        
        <content type="html" xml:base="https://alfii.pages.dev/Using-typst/">&lt;p&gt;Typst is an open source typesetting language. I am looking into it because it
is said to be much easier than Latex. I have used Latex before, but because I
don&#x27;t use it often, I end up spending more time reading package documentations
than writing.&lt;&#x2F;p&gt;
&lt;p&gt;As of writing this, I am on Gentoo. So, installing Typst was easy since it is
packaged in the GURU repository. This is already very nice compared to
installing a huge Latex meta package. From what I learned so far all you need
is a single command to get a PDF.&lt;&#x2F;p&gt;
&lt;pre&gt;&lt;code&gt;typst compile &amp;lt;file&amp;gt; &amp;lt;output&amp;gt;
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;h2 id=&quot;Functions&quot;&gt;Functions&lt;a class=&quot;zola-anchor&quot;
   href=&quot;#Functions&quot;
   aria-label=&quot;Anchor link for: Functions&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;Looks like everything is a function in Typst and you pass in the required
arguments. Some functions also accept a special argument called &lt;em&gt;content&lt;&#x2F;em&gt;
like &lt;code&gt;#text&lt;&#x2F;code&gt; and &lt;code&gt;#heading&lt;&#x2F;code&gt;. Functions which are frequenctly used
often have synax sugars. I found a nice list of templates in this github
repository &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;qjcg&#x2F;awesome-typst&quot;&gt;[1]&lt;&#x2F;a&gt; which can be good
starting place to learn more about the language.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;qjcg&#x2F;awesome-typst&quot;&gt;[1]&lt;&#x2F;a&gt;
&lt;code&gt;https:&#x2F;&#x2F;github.com&#x2F;qjcg&#x2F;awesome-typst&lt;&#x2F;code&gt;&lt;&#x2F;p&gt;
&lt;h2 id=&quot;Useful&quot;&gt;Useful&lt;a class=&quot;zola-anchor&quot;
   href=&quot;#Useful&quot;
   aria-label=&quot;Anchor link for: Useful&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;In the remaining section of this document I will put some code snippets
which I find interesting and useful.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>FreeBSD desktop issues</title>
        <published>2026-05-18T00:00:00+00:00</published>
        <updated>2026-05-18T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Alfin
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://alfii.pages.dev/FreeBSD-Desktop-Experience/"/>
        <id>https://alfii.pages.dev/FreeBSD-Desktop-Experience/</id>
        
        <content type="html" xml:base="https://alfii.pages.dev/FreeBSD-Desktop-Experience/">&lt;p&gt;I was playing around with FreeBSD 15 and was planning on daily driving it until some major issues started popping up.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;WiFi&quot;&gt;WiFi&lt;a class=&quot;zola-anchor&quot;
   href=&quot;#WiFi&quot;
   aria-label=&quot;Anchor link for: WiFi&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;My card is not supported currently but I heard drivers are on the way. So I had to use a package called &lt;code&gt;wifibox&lt;&#x2F;code&gt; which spins up a headless Alpine Linux on the built-in &lt;code&gt;bhyve&lt;&#x2F;code&gt; virtualisation tool. It exposes sockets to control the &lt;code&gt;wpa_supplicant&lt;&#x2F;code&gt; on the guest machine to the host machine using socat. It worked really well. I have no issues with it.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;Graphics&quot;&gt;Graphics&lt;a class=&quot;zola-anchor&quot;
   href=&quot;#Graphics&quot;
   aria-label=&quot;Anchor link for: Graphics&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;The real issue was with graphics. I have an all AMD machine meaning my CPU, iGPU, dGPU all of them are AMD. So drivers should never be an issue. I set up &lt;code&gt;amdgpu&lt;&#x2F;code&gt; and &lt;code&gt;xorg&lt;&#x2F;code&gt;. For some reason my primary GPU was always the dGPU. When I forced &lt;code&gt;xorg&lt;&#x2F;code&gt; to change primary to iGPU it would boot to a black screen. Not sure why this happens but if i were to guess it would be that the kernel finds the dGPU first since its at CPI:3:0:0 (iGPU is at 7:0:0) and flips the mux that way since my laptop is set to hybrid mode.&lt;&#x2F;p&gt;
&lt;p&gt;The main reason I decided not to daily drive FreeBSD was because some packages install &lt;code&gt;nvidea-drivers&lt;&#x2F;code&gt; as dependencies. Now that itself is not an issue. but when these drivers are installed it replaces the mesa &lt;code&gt;libglx.so.0&lt;&#x2F;code&gt; library in the modules directory of &lt;code&gt;xorg&lt;&#x2F;code&gt; with nvidia versions of it. So now my &lt;code&gt;glxinfo&lt;&#x2F;code&gt; gives me &lt;code&gt;&quot;cannot load glx module&quot;&lt;&#x2F;code&gt; errors. There is no blocklist for &lt;code&gt;pkg&lt;&#x2F;code&gt; through which I can ban all things related to nvidia. So now I have to do some hacky fix to get my graphics pipeline working praying that an update does not break it.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Title</title>
        <published>2000-01-21T00:00:00+00:00</published>
        <updated>2000-01-21T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Alfin
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://alfii.pages.dev/template/"/>
        <id>https://alfii.pages.dev/template/</id>
        
        <content type="html" xml:base="https://alfii.pages.dev/template/">&lt;p&gt;&#x2F;&#x2F; Content&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Example of elements</title>
        <published>2000-01-01T00:00:00+00:00</published>
        <updated>2000-01-01T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Alfin
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://alfii.pages.dev/example-of-elements/"/>
        <id>https://alfii.pages.dev/example-of-elements/</id>
        
        <content type="html" xml:base="https://alfii.pages.dev/example-of-elements/">&lt;h2 id=&quot;h2_Heading&quot;&gt;h2 Heading&lt;a class=&quot;zola-anchor&quot;
   href=&quot;#h2_Heading&quot;
   aria-label=&quot;Anchor link for: h2_Heading&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;h3_Heading&quot;&gt;h3 Heading&lt;a class=&quot;zola-anchor&quot;
   href=&quot;#h3_Heading&quot;
   aria-label=&quot;Anchor link for: h3_Heading&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h3&gt;
&lt;h4 id=&quot;h4_Heading&quot;&gt;h4 Heading&lt;a class=&quot;zola-anchor&quot;
   href=&quot;#h4_Heading&quot;
   aria-label=&quot;Anchor link for: h4_Heading&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h4&gt;
&lt;h5 id=&quot;h5_Heading&quot;&gt;h5 Heading&lt;a class=&quot;zola-anchor&quot;
   href=&quot;#h5_Heading&quot;
   aria-label=&quot;Anchor link for: h5_Heading&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h5&gt;
&lt;h6 id=&quot;h6_Heading&quot;&gt;h6 Heading&lt;a class=&quot;zola-anchor&quot;
   href=&quot;#h6_Heading&quot;
   aria-label=&quot;Anchor link for: h6_Heading&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h6&gt;
&lt;h2 id=&quot;Horizontal_Rules&quot;&gt;Horizontal Rules&lt;a class=&quot;zola-anchor&quot;
   href=&quot;#Horizontal_Rules&quot;
   aria-label=&quot;Anchor link for: Horizontal_Rules&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;hr &#x2F;&gt;
&lt;hr &#x2F;&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;Emphasis&quot;&gt;Emphasis&lt;a class=&quot;zola-anchor&quot;
   href=&quot;#Emphasis&quot;
   aria-label=&quot;Anchor link for: Emphasis&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;strong&gt;This is bold text&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;This is bold text&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;em&gt;This is italic text&lt;&#x2F;em&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;em&gt;This is italic text&lt;&#x2F;em&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;del&gt;Strikethrough&lt;&#x2F;del&gt;&lt;&#x2F;p&gt;
&lt;h2 id=&quot;Blockquotes&quot;&gt;Blockquotes&lt;a class=&quot;zola-anchor&quot;
   href=&quot;#Blockquotes&quot;
   aria-label=&quot;Anchor link for: Blockquotes&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;blockquote&gt;
&lt;p&gt;Blockquotes can also be nested...&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;...by using additional greater-than signs right next to each other...&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;...or with spaces between arrows.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;&#x2F;blockquote&gt;
&lt;&#x2F;blockquote&gt;
&lt;h2 id=&quot;Lists&quot;&gt;Lists&lt;a class=&quot;zola-anchor&quot;
   href=&quot;#Lists&quot;
   aria-label=&quot;Anchor link for: Lists&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;Unordered&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Create a list by starting a line with &lt;code&gt;+&lt;&#x2F;code&gt;, &lt;code&gt;-&lt;&#x2F;code&gt;, or &lt;code&gt;*&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Sub-lists are made by indenting 2 spaces:
&lt;ul&gt;
&lt;li&gt;Facilisis in pretium nisl aliquet
&lt;ul&gt;
&lt;li&gt;Nulla volutpat aliquam velit&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Very easy!&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Ordered&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Lorem ipsum dolor sit amet&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;Consectetur adipiscing elit&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;Integer molestie lorem at massa&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;You can use sequential numbers...&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;...or keep all the numbers as &lt;code&gt;1.&lt;&#x2F;code&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;Start numbering with offset:&lt;&#x2F;p&gt;
&lt;ol start=&quot;57&quot;&gt;
&lt;li&gt;foo&lt;&#x2F;li&gt;
&lt;li&gt;bar&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;h2 id=&quot;Code&quot;&gt;Code&lt;a class=&quot;zola-anchor&quot;
   href=&quot;#Code&quot;
   aria-label=&quot;Anchor link for: Code&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;Inline &lt;code&gt;code&lt;&#x2F;code&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Indented code&lt;&#x2F;p&gt;
&lt;pre&gt;&lt;code&gt;&#x2F;&#x2F; Some comments
line 1 of code
line 2 of code
line 3 of code
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Block code &quot;fences&quot;&lt;&#x2F;p&gt;
&lt;pre&gt;&lt;code&gt;Sample text here...
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;h2 id=&quot;Tables&quot;&gt;Tables&lt;a class=&quot;zola-anchor&quot;
   href=&quot;#Tables&quot;
   aria-label=&quot;Anchor link for: Tables&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Option&lt;&#x2F;th&gt;&lt;th&gt;Description&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;data&lt;&#x2F;td&gt;&lt;td&gt;path to data files to supply the data that will be passed into templates.&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;engine&lt;&#x2F;td&gt;&lt;td&gt;engine to be used for processing templates. Handlebars is the default.&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;ext&lt;&#x2F;td&gt;&lt;td&gt;extension to be used for dest files. extension to be used for dest files. extension to be used for dest files. extension to be used for dest files.&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;p&gt;Right aligned columns&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: right&quot;&gt;Option&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: right&quot;&gt;Description&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: right&quot;&gt;data&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;path to data files to supply the data that will be passed into templates.&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: right&quot;&gt;engine&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;engine to be used for processing templates. Handlebars is the default.&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: right&quot;&gt;ext&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;extension to be used for dest files.&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h2 id=&quot;Links&quot;&gt;Links&lt;a class=&quot;zola-anchor&quot;
   href=&quot;#Links&quot;
   aria-label=&quot;Anchor link for: Links&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;http:&#x2F;&#x2F;github.com&quot;&gt;link text&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; title=&quot;title text!&quot; href=&quot;http:&#x2F;&#x2F;github.com&quot;&gt;link with title&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;h2 id=&quot;Images&quot;&gt;Images&lt;a class=&quot;zola-anchor&quot;
   href=&quot;#Images&quot;
   aria-label=&quot;Anchor link for: Images&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;images.metmuseum.org&#x2F;CRDImages&#x2F;ep&#x2F;original&#x2F;DT1877.jpg&quot; alt=&quot;&amp;quot;Still Life with Peaches and Grapes&amp;quot; by Auguste Renoir&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;images.metmuseum.org&#x2F;CRDImages&#x2F;es&#x2F;original&#x2F;DP360507.jpg&quot; alt=&quot;Mille-fleurs tapestry with three medallions&quot; title=&quot;Mille-fleurs tapestry with three medallions&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Like links, Images also have a footnote style syntax&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;images.metmuseum.org&#x2F;CRDImages&#x2F;cl&#x2F;original&#x2F;DP101128.jpg&quot; alt=&quot;The Unicorn is Attacked (from the Unicorn Tapestries&quot; title=&quot;The Unicorn is Attacked&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;With a reference later in the document defining the URL location:&lt;&#x2F;p&gt;
&lt;pre&gt;&lt;code&gt;[id]: https:&#x2F;&#x2F;images.metmuseum.org&#x2F;CRDImages&#x2F;cl&#x2F;original&#x2F;DP101128.jpg  &amp;quot;The Unicorn is Attacked&amp;quot;
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;h3 id=&quot;Footnotes&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;markdown-it&#x2F;markdown-it-footnote&quot;&gt;Footnotes&lt;&#x2F;a&gt;&lt;a class=&quot;zola-anchor&quot;
   href=&quot;#Footnotes&quot;
   aria-label=&quot;Anchor link for: Footnotes&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h3&gt;
&lt;p&gt;Footnote 1 link&lt;sup class=&quot;footnote-reference&quot;&gt;&lt;a href=&quot;#first&quot;&gt;1&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Footnote 2 link&lt;sup class=&quot;footnote-reference&quot;&gt;&lt;a href=&quot;#second&quot;&gt;2&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Duplicated footnote reference&lt;sup class=&quot;footnote-reference&quot;&gt;&lt;a href=&quot;#second&quot;&gt;2&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt;.&lt;&#x2F;p&gt;
&lt;div class=&quot;footnote-definition&quot; id=&quot;first&quot;&gt;&lt;sup class=&quot;footnote-definition-label&quot;&gt;1&lt;&#x2F;sup&gt;
&lt;p&gt;Footnote &lt;strong&gt;can have markup&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;div&gt;
&lt;p&gt;and multiple paragraphs.&lt;&#x2F;p&gt;
&lt;div class=&quot;footnote-definition&quot; id=&quot;second&quot;&gt;&lt;sup class=&quot;footnote-definition-label&quot;&gt;2&lt;&#x2F;sup&gt;
&lt;p&gt;Footnote text.&lt;&#x2F;p&gt;
&lt;&#x2F;div&gt;
</content>
        
    </entry>
</feed>
