keenwrite-themes
library
keenwrite-themes | library | |
---|---|---|
13 | 16 | |
6 | 161 | |
- | - | |
0.0 | 9.7 | |
8 months ago | 7 days ago | |
TeX | Python | |
MIT License | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
keenwrite-themes
-
LaTeX for publishing tabletop role-playing games
This gets styled in the PDF as:
https://i.ibb.co/ZfZXmDn/output.png
Various styles are packed in themes, which the user can select when exporting to PDF. At present, there are only three themes:
https://github.com/DaveJarvis/keenwrite-themes/tree/main/exa...
There other styles in the Boschet theme, such as speech bubbles, TODOs, and so forth:
::: bubbletx
- On why Markdown is not a good, or even a half-decent, markup language
-
Millions of dollars in time wasted making papers fit journal guidelines
KeenWrite Themes[1] are instructions that tell ConTeXt how to typeset XHTML documents (content) into PDF files (presentation). I made a tutorial that shows how my FOSS desktop text editor, KeenWrite[3], allows users to write in Markdown to typeset a document against a particular theme.
Before it can be used for scientific papers, it needs cross-references, which, unfortunately, aren't part of the CommonMark specification.
I posit that the vast majority of LaTeX users don't grok how to separate content from presentation. When I asked a question on TeX.SE about how to adjust the line spacing between enumerated items (spanning a couple dozen enumerated lists), the vast majority of people voted for the answer of using `\itemsep0em` to tweak each list ... individually.[4] The correct answer, IMO, is to fix the problem globally, and not waste time tweaking individual lists.
[1]: https://github.com/DaveJarvis/keenwrite-themes
[2]: https://www.youtube.com/watch?v=3QpX70O5S30
[3]: https://github.com/DaveJarvis/keenwrite
[4]: https://tex.stackexchange.com/questions/6081/reduce-space-be...
-
Lua: The Little Language That Could
The ConTeXt typesetting system tightly integrates Lua. One aspect of Lua that I dislike is its inability to easily write OOP-ish code. What's impressive about the language is that it can be extended to do so in astonishingly little code:
* https://github.com/kikito/middleclass
With OOP in place, I was able to typeset a hexagonal grid and a symbolic representation of a neural network on top, using a more OOP-like approach. The classes are straightforward.
A vertex defines a point in 2D space:
* https://github.com/DaveJarvis/keenwrite-themes/blob/main/bos...
An edge connects two vertices:
* https://github.com/DaveJarvis/keenwrite-themes/blob/main/bos...
A graph connects edges:
* https://github.com/DaveJarvis/keenwrite-themes/blob/main/bos...
A priority queue serves for ordering graph edges by weight of adjoining vertices:
* https://github.com/DaveJarvis/keenwrite-themes/blob/main/bos...
With these concepts in hand, we can typeset a grid and a "neural network" on top:
* https://github.com/DaveJarvis/keenwrite-themes/blob/main/bos...
Here's an example of the output for chapter 1:
* https://i.ibb.co/19DCDZy/ch-1.png
And chapter 14, where the "network" has grown in complexity:
* https://i.ibb.co/ncf16vg/ch-2.png
This is for my near future hard sci-fi book on AGI. I'm looking for alpha readers to give me feedback. See profile for contact details.
-
KeenWrite 3.2.0
KeenWrite uses themes to control every aspect of the presentation layer: leader dots, indentation levels, fonts, colours, hyperlinking, and so forth. This is accomplished by first converting R Markdown to XHTML then passing the XHTML to ConTeXt.
-
Pure Java Typesetting System
> like font face, font size, horizontal and vertical element positioning and line spacing, etc.
May I recommend ConTeXt?
For my purposes, KeenType was only meant to provide a real-time "rough draft" of equations rendered inside of KeenWrite[0], my FOSS Markdown editor. That is, I edit in Markdown, then KeenWrite converts the inline TeX-based equations for previewing. When I'm ready to create a "finished" product, KeenWrite exports the Markdown to XHTML then feeds the XHTML, along with a theme, to ConTeXt[1]. The various themes[2] are where font faces sizes, alignment, kerning, etc. are tweaked. In this way content remains completely separated from presentation.
[0]: https://github.com/DaveJarvis/keenwrite
[1]: https://wiki.contextgarden.net/Main_Page
[2]: https://github.com/DaveJarvis/keenwrite-themes
-
Architecture diagrams should be code
KeenWrite[0], the FOSS Markdown text editor I’ve been working on, includes the ability to render plain text diagrams via Kroki[1]†. See the screenshots[2] for examples. Here’s a sample Markdown document that was typeset[3] using ConTeXt[4] (and an early version of the Solare[5] theme).
One reason I developed KeenWrite was to use variables inside of plain text diagrams. In the genealogy diagram, when any character name (that’s within the diagram) is updated, the diagram regenerates automatically. (The variables are defined in an external YAML file, allowing for integration with build pipelines.)
Version 3.x containerizes the typesetting system, which greatly simplifies the installation instructions that allow typesetting Markdown into PDF files. It also opens the door to moving Kroki into the container so that diagram descriptions aren’t pushed over the Internet to be rendered.
†Kroki, ergo KeenWrite, supports BlockDiag (BlockDiag, SeqDiag, ActDiag, NwDiag, PacketDiag, RackDiag), BPMN, Bytefield, C4 (with PlantUML), Ditaa, Erd, Excalidraw, GraphViz, Nomnoml, Pikchr, PlantUML, Structurizr, SvgBob, UMLet, Vega, Vega-Lite, and WaveDrom.
Note that Mermaid diagrams generate non-conforming SVG[6], so they don’t render outside of web browsers. There is work being done to address[7] this problem.
[0]: https://github.com/DaveJarvis/keenwrite
[1]: https://kroki.io/
[2]: https://github.com/DaveJarvis/keenwrite/blob/main/docs/scree...
[3]: https://pdfhost.io/v/4FeAGGasj_SepiSolar_Highlevel_Software_...
[4]: https://wiki.contextgarden.net/Main_Page
[5]: https://github.com/DaveJarvis/keenwrite-themes/
[6]: https://github.com/mermaid-js/mermaid/issues/2485
[7]: https://github.com/yuzutech/kroki/issues/1410
-
Is it possible to add LaTeX commands to a markdown file?
KeenWrite leverages KeenWrite Themes to change how documents are presented. The Tarmes theme is an example of a very basic theme, meant to act as a base for making new themes. Take a look at Tarmes, which is probably the closest answer to your question. Feel free to add issues against the issue tracker or add questions to the discussion area.
-
Converting my PhD thesis into HTML
> Nevertheless, I would prefer a Markdown-based system
My free, cross-platform desktop Markdown editor, KeenWrite[1], integrates with the ConTeXt typesetting software[2]. I'm working on a branch[3] to make integration containerized[3] because its installation is painful. KeenWrite limits math to plain TeX[4] so that the output can be rendered using any TeX-based typesetter (ConTeXt, LaTeX, MathJax, εχTEX, etc.).
Here's a sample document typeset using ConTeXt (skip to page 40 for the math):
https://pdfhost.io/v/4FeAGGasj_SepiSolar_Highlevel_Software_...
That document theme is called Solare[8].
> that can use CSS and MathML
Adding CSS mixes presentation logic with content, which is something KeenWrite strives to avoid. Instead, KeenWrite implements Pandoc's annotation syntax to keep presentation logic out of the content. I've written about this extensively in my Typesetting Markdown series[5].
You can produce some pretty amazing documents just with annotations, such as the following that I wrote in Markdown and typeset using ConTeXt:
https://impacts.to/downloads/lowres/impacts.pdf
> has a 100% bibtex clone for references.
Markdown fails at references. At some point, I'd like to implement cross-references in KeenWrite. Except there's at least six competing standards for the syntax, which I've also remarked upon[6], making the choice of syntax difficult[7].
[1]: https://github.com/DaveJarvis/keenwrite
[2]: https://wiki.contextgarden.net/Installation
[3]: https://github.com/DaveJarvis/keenwrite/blob/1_typeset_using...
[4]: https://github.com/DaveJarvis/keenwrite/blob/main/docs/scree...
[5]: https://dave.autonoma.ca/blog/2020/04/28/typesetting-markdow...
[6]: https://talk.commonmark.org/t/cross-references-and-citations...
[7]: https://xkcd.com/927/
[8]: https://github.com/DaveJarvis/keenwrite-themes/tree/main/sol...
-
KeenWrite 2.10.0: R meets TeX
If ConTeXt and KeenWrite Themes are installed, then you can press Control+P to export as a PDF file, producing the output shown on the far right.
library
- Show HN: Find similar folders based on folder name, folder size, and count
-
Ask HN: Anyone looking for contributors for their open source projects
Sure, I write small python CLI utils that help me solve media organization, media consumption, and sometimes data analysis. I use this every day on Linux and Android but I haven't tested it on other platforms. There are a lot of different subcommands and, although the CLI package will always be opinionated to some extent, there is a lot of niche functionality which might not need to exist. So I'm open to things being refactored or new subcommands being added. [1]
I have a lot of ideas for new ones, for example, I want a CLI that can take an artist name like "Theodor Kittelsen" and fetch highest quality public domain images--but I realize any implementation that does this well will be somewhat fragile so I haven't really attempted that yet. Other ideas that I have are often solved by piping output from one of my existing commands to another.
1. https://github.com/chapmanjacobd/library
-
Show HN: I built an open-source data copy tool called ingestr
I used sqlite-utils to create a tool that can merge SQLITE files and split them:
https://github.com/chapmanjacobd/library?tab=readme-ov-file#...
-
CurlyQ: Command line helper for curl and web scraping
I've created a few similar tools for link scraping: https://github.com/chapmanjacobd/library#usage
- library links-extract: extract inner links from pages (stdin, local files, or remote sites)
- Show HN: Merge folders and simulate merging–count of conflicts, trumps, and new
-
FileTrove: A file indexer
okay https://github.com/chapmanjacobd/library
-
Sunday Daily Thread: What's everyone working on this week?
I'm adding more unit tests: https://github.com/chapmanjacobd/library/commit/bd2e138897fdf41b8d8eade89bcdb34fee2b6abd
-
Show HN: Trogon – An automatic TUI for command line apps
I would also[0] be interested in an argparse equivalent of this for my tool Library[1]
[0] https://github.com/Textualize/textual/discussions/228
[1] https://github.com/chapmanjacobd/library
-
After over 15 years of ripping and downloading, my music library just reached 20TB. AMA
I have a little over 2 million songs as well and I wrote my own media management system to deal with it all. I save everything as Opus so the size is relatively small but still high-quality.
-
Those of you with 100TB+, what do you do for backups?
Losing the data from the hard drive AND the internet is less likely than just one of those events happening. Recently I accidentally deleted 12 TB of media and I was able to redownload 80% of it using a script that I wrote. 20% of it I had to manually redownload but everything was still there.
What are some alternatives?
TALA - A diagram layout engine designed specifically for software architecture diagrams
ffmpy - Pythonic interface for FFmpeg/FFprobe command line
KeenWrite - Free, open-source, cross-platform desktop Markdown text editor with live preview, string interpolation, and math.
yark - YouTube archiving made simple.
character-picker - Quick and convenient character picker for Windows
cookwherever - Cook Wherever is an open source project to attempt to making cooking more accessible and engaging for everyone.
hn_mining - hackernews data
squid-dl - a massively parallel yt-dlp-based YouTube downloader
publisher - speedata Publisher - a professional database Publishing system
jExifToolGUI - jExifToolGUI is a multi-platform java/Swing graphical frontend for the excellent command-line ExifTool application by Phil Harvey
mathpix-markdown-it - Markdown rendering + Latex extras (equations, tables, ...), with conversion features, for the scientific community
json-lineage - Tool to allow parsing large JSON files without laoding into memory. Developed in Rust with adapters in other programming langauges for easy adoption