Haskell Pandoc

Open-source Haskell projects categorized as Pandoc

Top 23 Haskell Pandoc Projects

  • pandoc

    Universal markup converter

    Project mention: Guess which part of my dissertation I’m at from my Google search history | /r/okbuddyphd | 2023-08-25

    You can also use Markdown that is a lot ewasier to learn and then convert to Latex or word or pdf using Pandoc.

  • patat

    Terminal-based presentations using Pandoc

    Project mention: Pysentation – The Python Presentation | news.ycombinator.com | 2023-09-01

    I've been using https://github.com/jaspervdj/patat previously, but this looks like a worthy alternative. Nice work, I'll have try this out :)

  • Revelo Payroll

    Free Global Payroll designed for tech teams. Building a great tech team takes more than a paycheck. Zero payroll costs, get AI-driven insights to retain best talent, and delight them with amazing local benefits. 100% free and compliant.

  • pandoc-crossref

    Pandoc filter for cross-references

    Project mention: Is there a way to use pandoc-crossref for foonotes? | /r/linuxquestions | 2023-05-18

    i was going through this link but couldn't find anything for footnotes.

  • emanote

    Emanate a structured view of your plain-text notes

    Project mention: Taking math notes on your computer [LINUX] | /r/learnmath | 2023-05-05

    Im personally using Emanote which does exactly what you describe. It supports LaTeX and lots of other features via Pandoc. Its also very nice to use in that it supports hot-reloading, instead of requiring manual refreshing. The only downside for some might be that its installed via the Nix ecosystem which is (great but) a bit of a rabbit hole you might not want to deal with, particularly depending on your level of technicality on the computer.

  • gwern.net

    Site infrastructure for gwern.net (CSS/JS/HS/images/icons). Custom Hakyll website with unique automatic link archiving, recursive tooltip popup UX, dark mode, and typography (sidenotes+dropcaps+admonitions+inflation-adjuster).

    Project mention: Hyperlink Maximalism (2022) | news.ycombinator.com | 2023-07-25

    How to add hyperlinks is something I've thought a bit about for Gwern.net: there's no point having all these fancy popups if there are no hyperlinks exploiting them, right?

    The way I currently do it is that first, I make hyperlinks stable by automatically snapshotting & making local archives of pages (https://gwern.net/archiving#preemptive-local-archiving). There is no point in adding links if linkrot discourages anyone from using them, of course, and I found that manual linkrot fixing did not scale to the amount of writing & hyperlinking I want to do.

    The next step is adding links automatically. Particularly in the STEM topics I write most about these days, AI, there are many acronyms & named systems which mean specific things but it's easy to get lost in. Fortunately, that makes them easy to write automatic link rules for: https://github.com/gwern/gwern.net/blob/master/build/Config/... These run automatically on essay bodies when compiling the site, and on annotations when created. If a URL is already present, its rule doesn't run; and if it's not, only the first instance gets linked and the rest are skipped. (This is important: there are some approaches which take the lazy approach of hyperlinking every instance. This is bad and discredits linking.) This code is very slow but fast enough for static site building, anyway.

    Sometimes terms are too ambiguous or too rare or too much work to write an explicit rewrite rule for. But it will still exist on-site. In fact, you can say that the site corpus defines a set of rewrite rules: everytime I write by hand `[foo](http://bar)`, am I not implicitly saying that there ought to be a rewrite rule for the string `foo` which ought to hyperlink `http://bar`? So there is a script (https://github.com/gwern/gwern.net/blob/master/build/link-su...) which will parse the site corpus, compile all the text/link pairs, create/remove a bunch of them per whitelist/blacklists and a frequency/length threshold, and then generate a bunch of Emacs Lisp pairs. This master list of rewrites then gets read by an Elisp snippet in my Emacs and turned into several thousand interactive search-and-replace commands when I run my generic formatting command on a buffer.

    The effect of this second script is that after I have linked `Foo et al 2023` to `/doc/2023-foo.pdf` a few times (perhaps I went back and hyperlinked all instances of it after realizing it's an important paper), any future instances of 'Foo et al 2023' will pop up a search-and-replace asking to hyperlink it to `/doc/2023-foo.pdf`, and so on.

    Third, I exploit my link-recommendations for manually-curated 'see also' sections appended to annotations. I have a fairly standard link-recommender approach where each annotation is embedded by a neural network (OA API for now), and one does nearest-neighbor lookups to find _n_ 'similar' annotations, and shows the reader them in case any are relevant. So far so good. But I also do that after editing each annotation: embed-recommend-list, and spits out a HTML list of the top 20 or so similar-links appended to the annotation. I can look at that and delete the irrelevant entries, or the entire list. This means that they'll be included in the final embedded version of the annotation, will show up in any fulltext searche I run, are more visible to the reader, can be edited into the main body if I want to, etc.

    Fourth and most lately, I've been experimenting with GPT-4 for auto-formatting & auto-linking (https://github.com/gwern/gwern.net/blob/master/build/paragra...). GPT-4 has memorized many URLs, and where it hasn't, it still makes pretty good guesses. So, as part of the standard formatting passes, I pass annotations through GPT-4, with a bit added to its prompt, 'try to add useful hyperlinks to Wikipedia and other sources'. It often does, and it's quite convenient when that works. GPT-4 still confabulates URLs more often than I link, and sometimes hyperlinks too-obvious WP links and I have to delete them. So, still some adjustments required there.

    And these work well with the other site features like recursive popups, or bidirectional backlinks (https://gwern.net/design#backlink).

  • pandoc-plot

    Render and include figures in Pandoc documents using your plotting toolkit of choice

    Project mention: Pandoc [a universal document converter] 3.0 | news.ycombinator.com | 2023-01-19

    That's great news. I've been waiting for years for a dedicated 'Figure' element. The workaround was pretty brittle. It'll make pandoc-plot [0] easier to maintain as well.

    [0]: https://github.com/LaurentRDC/pandoc-plot

  • pandoc-sidenote

    Convert Pandoc Markdown-style footnotes into sidenotes

    Project mention: Djot: A light markup language by the creator of Pandoc and CommonMark | news.ycombinator.com | 2022-12-05

    I can’t imagine the intended audience being so wide as to include a goal of “replacing Markdown as the default on GitHub.”

    Instead, this project appeals to me as someone who’s already “bought in” to the pandoc ecosystem. Pandoc makes it really easy to write filters[1] and to take the same source file to generate web pages[2], Reveal.js presentations, Beamer presentations, and long-form PDFs[3]. As someone who writes most things in Markdown compiled via pandoc, I see the cracks in the edges all too often, but I’m too stubborn to give up markdown or any of the tools I’ve built up around pandoc and pandoc markdown. I could absolutely see there come a day where I find some last straw where I can’t get done with pandoc Markdown what I need to get done, and djot seems like it would at least be a contender. I’m sure there are many pundits here would chime in and say “just use Asciidoc,” but every time I look at a syntax quick reference, I get about halfway down the page before thinking “nah, this looks too foreign, I don’t want something that diverges this far from Markdown.”

    Djot deviates in annoying ways from Markdown, but not as many and so it’d be an easier pill to swallow for the narrow audience of people like me who want something mostly similar to Markdown that works well with pandoc and avoids the most common syntactic oddities of Markdown.

    [1] https://github.com/jez/pandoc-sidenote

    [2] https://github.com/jez/pandoc-markdown-css-theme

    [3] https://github.com/jez/pandoc-starter

  • SonarLint

    Clean code begins in your IDE with SonarLint. Up your coding game and discover issues early. SonarLint is a free plugin that helps you find & fix bugs and security issues from the moment you start writing code. Install from your favorite IDE marketplace today.

  • citeproc

    CSL citation processing library in Haskell

  • pandoc-types

    types for representing structured documents

  • pandoc-csv2table

    A Pandoc filter that renders CSV as Pandoc Markdown Tables.

  • pandoc-include

    An include filter for Pandoc

  • asciidoc-hs

    AsciiDoc parser that can be used as a Pandoc front-end, written in Haskell

  • pandoc-citeproc-preamble

    Insert a preamble before pandoc-citeproc's bibliography

  • pandoc-placetable

    Pandoc filter to include CSV data (from file or URL)

    Project mention: What would be the downsides of extending the image syntax ![]() to tables? | /r/pandoc | 2023-02-22

    You could do this with a pandoc filter. That's probably more flexible than a pandoc built-in. You can easily adapt a filter to various situations, file types, and so on. After a very limited search on the internet, I do find quite some filters that convert csv formatted data in code blocks to tables. For example, https://github.com/mb21/pandoc-placetable. I'm sure there are also filters out there that take a pandoc link to a CSV file and convert it to a table. If not, they're not difficult to write either, and then you can get exactly what you want.

  • pandoc-emphasize-code

    A Pandoc filter for emphasizing code in fenced blocks

  • pandoc-markdown-ghci-filter

    A Pandoc filter that identifies Haskell code in Markdown, executes the code in GHCI and embeds the results in the returned Markdown.

  • pandoc-japanese-filters

    Pandoc filters to treat Japanese-specific markups

  • pandoc-filter-graphviz

    Interpret '~~~ graphviz' bloc as a call to graphviz software and substritude text with produced picture

  • pandoc-lens

    Lenses for the Pandoc AST

  • readme-lhs

    Output results directly to a lhs file.

  • reflex-dom-pandoc

    Render Pandoc documents in reflex-dom

  • InfluxDB

    Collect and Analyze Billions of Data Points in Real Time. Manage all types of time series data in a single, purpose-built database. Run at any scale in any environment in the cloud, on-premises, or at the edge.

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2023-09-01.

Haskell Pandoc related posts


What are some of the best open-source Pandoc projects in Haskell? This list will help you:

Project Stars
1 pandoc 30,058
2 patat 2,012
3 pandoc-crossref 840
4 emanote 660
5 gwern.net 377
6 pandoc-plot 190
7 pandoc-sidenote 132
8 citeproc 127
9 pandoc-types 101
10 pandoc-csv2table 92
11 pandoc-include 60
12 asciidoc-hs 43
13 pandoc-citeproc-preamble 38
14 pandoc-placetable 36
15 pandoc-emphasize-code 28
16 pandoc-markdown-ghci-filter 14
17 hakyll-shortcut-links 11
18 pandoc-japanese-filters 10
19 pandoc-filter-graphviz 10
20 pandoc-lens 9
21 readme-lhs 7
22 pandoc-link-context 6
23 reflex-dom-pandoc 6
Learn any GitHub repo in 59 seconds
Onboard AI learns any GitHub repo in minutes and lets you chat with it to locate functionality, understand different parts, and generate new code. Use it for free at www.getonboard.dev.