No description
Find a file
2023-03-13 22:41:25 +08:00
assets doc: update README 2023-03-13 19:40:56 +08:00
.editorconfig Initial commit 2023-03-13 15:05:19 +08:00
.eslintignore Initial commit 2023-03-13 15:05:19 +08:00
.eslintrc Initial commit 2023-03-13 15:05:19 +08:00
.gitignore Initial commit 2023-03-13 15:05:19 +08:00
.npmrc Initial commit 2023-03-13 15:05:19 +08:00
esbuild.config.mjs Initial commit 2023-03-13 15:05:19 +08:00
LICENSE Create LICENSE 2023-03-13 20:12:41 +08:00
main.ts feat: add main function of render 2023-03-13 19:40:20 +08:00
manifest.json Update manifest.json 2023-03-13 20:17:31 +08:00
package-lock.json feat: add main function of render 2023-03-13 19:40:20 +08:00
package.json feat: add main function of render 2023-03-13 19:40:20 +08:00
pseudocode.d.ts feat: add main function of render 2023-03-13 19:40:20 +08:00
README.md Update README.md 2023-03-13 22:41:25 +08:00
styles.css feat: add main function of render 2023-03-13 19:40:20 +08:00
tsconfig.json Initial commit 2023-03-13 15:05:19 +08:00
version-bump.mjs Initial commit 2023-03-13 15:05:19 +08:00
versions.json Initial commit 2023-03-13 15:05:19 +08:00

Obsidian-Pseudocode

This is a plugin for Obsidian that allows you to render LaTeX-style pseudocode inside a code block. The plugin is based on pseudocode.js, a JavaScript library that typesets pseudocode beautifully to HTML.

Features

  • Intuitive grammar: The plugin takes a LaTeX-style input that supports the algorithmic constructs from LaTeX's algorithm packages. With or without LaTeX experience, a user should find the grammar fairly intuitive.
  • Print quality: The HTML output produced by the plugin is (almost) identical with the pretty algorithms printed on publications that are typeset by LaTeX.
  • Math formula support: Inserting math formulas in the pseudocode is as easy as LaTeX. Just enclose math expression in $...$ or \(...\).

Future Features

  • Syntax highlighting.
  • Auto-completion inside pcode code block.

Usage

To use the plugin, simply create a code block in your Obsidian note and add your pseudocode inside it. Then, add the language specifier pcode (short for "pseudocode") to the code block. The plugin will automatically render the pseudocode as LaTeX.

Here is an example:

    ```pcode
    \begin{algorithm}
    \caption{Quicksort}
    \begin{algorithmic}
      \PROCEDURE{Quicksort}{$A, p, r$}
        \IF{$p < r$}
          \STATE $q = $ \CALL{Partition}{$A, p, r$}
          \STATE \CALL{Quicksort}{$A, p, q - 1$}
          \STATE \CALL{Quicksort}{$A, q + 1, r$}
        \ENDIF
      \ENDPROCEDURE
      \PROCEDURE{Partition}{$A, p, r$}
        \STATE $x = A[r]$
        \STATE $i = p - 1$
        \FOR{$j = p$ \TO $r - 1$}
          \IF{$A[j] < x$}
            \STATE $i = i + 1$
            \STATE exchange
            $A[i]$ with $A[j]$
          \ENDIF
        \STATE exchange $A[i]$ with $A[r]$
        \ENDFOR
      \ENDPROCEDURE
      \end{algorithmic}
    \end{algorithm}
    ```

This will be rendered as:

example

Installation

To install the plugin, download the latest release from the releases page and extract it to your Obsidian plugins folder. Then, enable the plugin in your Obsidian settings.

Or just download it within Obsidian's community plugins. (Pending...)

Credits

This plugin is based on pseudocode.js, a JavaScript library that typesets pseudocode beautifully to HTML. Many thanks to the pseudocode.js team for their great work!