11 ms·
Hi, Nota creator here. A high-level comment: After developing the initial prototype you see in the webpage, I've since gone back to the drawing board. I'm work
by wcrichton 3y ago
Hi, Nota creator here. A high-level comment:
After developing the initial prototype you see in the webpage, I've since gone back to the drawing board. I'm working on developing a firmer foundation for issues like:
- How do you interleave content and computation? See: https://arxiv.org/abs/2310.04368 https://arxiv.org/abs/2310.04368
- How do different syntaxes make different document tasks easy, hard, or impossible? See: https://github.com/cognitive-engineering-lab/doclang-benchmark https://github.com/cognitive-engineering-lab/doclang-benchma...
I still very much believe in the high-level philosophy, but Nota will look very different within ~6 months. In the meantime, the single coolest development in the document language space is Typst, which I encourage you to check out: https://typst.app/ https://typst.app/
Also: the next version of Nota will be written 99% in Rust :-)
- manxman 3y agoJust my two cents - Not sure the language you choose matters as much as making the API usable by a wide audience. Sure if performance is a real issue then rust makes more sense than JS but I’m not sure that’s going to be hugely meaningful in most use cases. I’ve never been a fan of Latex despite writing some mammoth documents over the years. Latex always felt like a beast for academics not for business. Yet there’s often things I wanted to do consistently in Word etc. that have never been easy. Styles can easily become a muddle. Having consistent numbering and bulleting is a pain and errors can easily creep in. Tracking changes becomes a real problem when you get into many revisions and that often always ends up relying on a level of trust between parties to not override the tracking. I think there’s a killer app in just fixing this issue with a product that guarantees that guarantees all changes are properly shown from the start of a process to it being fully approved by all parties. Businesses, lawyers etc would love that stuff. Heck if you sprinkle blockchain in you might even get easy funding but I think it’s more of a basic cryptography thing than a blockchain thing - at least it doesn’t need that level of complexity.
- celim307 3y agoSurprised more legal docs aren’t tracked like git, with pull requests
- manxman 3y agoCause git ain’t user friendly enough for lawyers and they use word not a plain text editor which doesnt make it easy to see the diffs. But yes ;)
- SanderNL 3y agoStyle and substance separation is easy and should be a requirement. Legal is pure text "programming" and what I mean is that the style of the text has zero bearing on the judicial process. The benefits of working at the proper level of abstraction compound. It enables tech like diffs and git, which then nicely solves a bunch of other problems as well. Using Word completely side-steps all those benefits. Sure, you get a few nice buttons, but that's literally it. You are trapped forever with no way forward. This feels like actually programming in Word and manually highlighting comments to be green or something. It's a travesty IMO.
- esquivalience 3y agoI think markdown might be the solution here.
- kwhitefoot 3y agoWe used to have word processors that exposed mark up. I wrote immense amounts of documentation in Wordstar on 8 bit machines and it was definitely more efficient than the WYSIWYG word processors that came later and faster even when the newer ones were running on much faster hardware. Something like Wordstar would be better than MarkDown.
- TylerE 3y agoTry context over latex. Much more “gimme what I ask for” than being super academic about subsubsubsubheaders.
- Metus 3y agoI always disliked that it was so difficult to interact with Word if you wanted to create automated documents. Instead I'd love it if there was a developer-first experience to create standardised documents from nice looking participation certificates, invoices, memos, documentation up to multi-tome histories.
- archiewood 3y ago> Not sure the language you choose matters as much as making the API usable by a wide audience. Fully agree with this, and having typeset my masters thesis and later my resume using LaTeX, I think that the “authoring experience” is definitely the place to focus on improving, LaTeX just takes too damn long to get something good. If you’re interested in the “markup to document publishing” space, you might also be interested in the open-source report publishing tool I’m now working on, Evidence.dev (https://github.com/evidence-dev/evidence https://github.com/evidence-dev/evidence). It’s similarly based on markdown, though uses code fences to execute code, HTML style tags for charts and components, and {…} for JavaScript, i.e. --- title: Lorem Ipsum description: dolor sit amet, consectetur adipiscing elit --- ```sql petal_vs_sepal SELECT petal_length, sepal_length FROM iris_dataset_table ORDER BY 1 DESC ``` <ScatterPlot title="Petal vs Sepal Length" data={petal_vs_sepal} x=petal_length y=sepal_length /> The longest petal in the dataset is {petal_vs_sepal[0].petal_length}. Our design philosophy here is that the rendered documents should be beautiful by default, but highly configurable so you can get pixel perfect results. We’re also aiming for first class output options for desktop, mobile, PDF and image export. Previous HN discussion: https://news.ycombinator.com/item?id=28304781 https://news.ycombinator.com/item?id=28304781 - 91 comments https://news.ycombinator.com/item?id=35645464 https://news.ycombinator.com/item?id=35645464 - 97 comments
- Uptrenda 3y ago>Also: the next version of Nota will be written 99% in Rust :-) Cringed. ty
- lencastre 3y agoLooks amazing that typst!!
- dash2 3y agoWhat are the similarities and differences between it and quarto?
- SkiFire13 3y agoI used typst for some university project and what I really liked about it is that it is as programmable as latex but with a language that's much more intuitive (no macro weirdness, but actual functions/if/loops etc etc). It feels like a better of TeX rather than a different way of writing documents. I haven't really used quarto so take this with a grain of salt, but from what I can see it is much more declarative, you just declare the content of your document and pick a template to show it. It feels simplier, but at the same time what if I need to customize something here and there? Looks like there are extensions that can be programmed, but they are more like second class citizens that you are not suppose to use normally.
- cscheid 3y ago(disclosure: I'm a quarto dev. But I'm also a big fan of typst) You're right that typst is _very good_ at extensions, and likely will always be superior to quarto when it comes to that. The fundamental advantage typst has is that it's a "greenfield" project, and a very well-designed one at that, especially when compared to TeX. > Looks like there are extensions that can be programmed, but they are more like second class citizens that you are not suppose to use normally. We take quarto extensibility pretty seriously! "Simple" customization is available without need to program extensions, mostly through metadata configuration and classes and attributes in the document. This covers the basics like CSS, layout, document listings, etc. For slightly more sophisticated extensions, you can create "filters" that operate directly on the document AST, either using the built-in Lua extension API or reading/writing a JSON representation (these are both built on top of Pandoc's capabilities, which quarto leverages extensively). For reusable, packageable functionality, the extension system as it exists today is simple but certainly meant to be used "normally". It's how custom formats (the common, concrete use case is to provide different styles for particular academic journals) are defined and used.
- dash2 3y agoCan I make a simple point? As an academic, 99% of my time is spent doing two things: 1. Writing statistical computations using a language like R or python. 2. Writing English text. The most important thing about a document language is that it should prioritize those things. For example, here's why Rmarkdown/Quarto is better than TeX. A TeX document starts: \documentclass[12pt,a4paper]{article} \usepackage{amsmath} \usepackage{amsthm} \usepackage{geometry} \usepackage{enumitem} \setitemize{noitemsep} \usepackage{tabularx} \usepackage{setspace} \newcolumntype{x}{>{\centering\arraybackslash}X} \newtheorem{theo}{Theorem} \newtheorem{prop}[theo]{Proposition} \newtheorem{lemma}{Lemma} \usepackage{fontspec,xunicode} \defaultfontfeatures{Mapping=tex-text} \setsansfont{TeX Gyre Heros} A quarto document starts: --- title: "Natural selection in the Health and Retirement Study" author: "XXX" abstract: | I investigate natural selection on polygenic scores in the contemporary US, using the Health and Retirement Study. Results partially support the economic theory of fertility as an explanation for natural selection: among both white and black respondents, scores which correlate negatively (positively) with education are selected for (against). Selection coefficients are larger among low-income and unmarried parents, but not among younger parents or those with less education. I also estimate effect sizes corrected for noise in the polygenic scores. date: "September 2023" You see the difference in emphasis.
- nanna 3y agoI don't get the problem. If 99% of your documents need the same packages and formatting, then all you need to do in LaTeX is create a template (eg via Yasnippet in Emacs) or dump it all in a LaTeX class file and then import it in your frontmatter, and Bob's your uncle. There are many frustrating things about LaTeX but I don't see how this is one of them.
- dash2 3y agoProbably that's true. But first, I don't know how to create a class file, or a template (if that is a LaTeX thing). And since I've never seen anyone else do this, I guess that most academics don't either. Second, my point isn't just about the specific issue, it's that this issue reveals how TeX thinks about the world. It thinks you want to spend your time writing TeX. No, I want to spend my time writing English. Here's another example. This is how you embed an image in quarto - it's just markdown:  And here is how you do it in TeX: \begin{figure}[t] \includegraphics{path/to/image} \centering \end{figure} Which of these is easier to memorize and to read past? Similar comments apply to tables, links, numbering and so on.
- breuleux 3y agoIf you want another data point, I made my own markup language a while back that aims for markdown-like simplicity while making it easy to define simple macros and operators: http://breuleux.github.io/quaint/ http://breuleux.github.io/quaint/ It's pretty extensive. I still use it for my own writing, although I'm probably the only one.
- svnt 3y agoDo you have an example of a document where it’s special features are more heavily used? Most of the posts I saw were basically just paragraphs and italicized sections.
- breuleux 3y agoI don't have a whole lot that are public. This section describes one of advanced features I use most: http://breuleux.github.io/quaint/syntax.html#rules http://breuleux.github.io/quaint/syntax.html#rules I've used it to create operators for stuff like: * Lead caps * Formatting dialogue in a screenplay * Marking something that's a prop in a screenplay * Parametric links (e.g. defining @john so that it creates a link to the john handle on X/Twitter) * Tooltips
- eviks 3y ago> - How do different syntaxes make different document tasks easy, hard, or impossible? That's a good idea, would be nice to optimize that instead of sticking to the poor decision of markdown to double asterisks for the more common bold formatting while also wasting another _ symbol in the process
- bionhoward 3y agoRust makes tremendous sense for this and I really like your borrowing syntax in Nota. Keep it up. This reminds me of MDX, another project I find inspiring and use a lot
- balakc 3y agoLooks quite nice! While LaTeX is cool, and I use it extensively, I personally feel that it has not adapted quickly to various use cases. It is not _easy_ to compile into different formats for consumption, and sometimes the layout issues are quite hard to debug. Efforts such as these, even if they do not take off, might give the LaTeX community enough to think about what to focus on for improvement...
- nine_k 3y agoCuriously, all these problems, and more, have been reasonably solved in Org Mode. Sadly, too few people know about it because too few people use Emacs.
- FireBeyond 3y agoYou can write doctorate level academic papers in Org Mode?
- drojas 3y agoYes, and you can use Pandoc to export to different formats, including Epub, HTML, Docx, etc. You can embed LaTeX and customize in multiple ways using Lua filters for Pandoc. I've found Pandoc to be more powerful than Emacs when it comes to writing documents in Org mode, while Emacs is more powerful when you use Org mode to do literate programming. YMMV
- ska 3y agoYou can, but you might be better off just using AUCTex if you are emacs anyway. YMMV with use case, obviously.
- tikhonj 3y agoYou can, just like you could do in Markdown. You can use inline TeX and get the right overall format with a template. I haven't actually done this for a paper, but I used Pandoc to typeset a textbook with lots of math and code and it worked well. We could have used org-mode just as easily, but Markdown was already familiar to my non-Emacs-using coauthor. (Hey, we all have our faults!)
- dotancohen 3y agoCan you add a subheading in an Org mode document, then pop out of that subsection to get back to the previous heading? E.g.: * Foobar Foobars are great. ** Warning Foobars are not to be used with Booms. Foobars are great for reading, writing, and flying. This text is outside the Warning subsection.
- Uptrenda 3y agoYou should definitely look more into restructured text btw. It lets you build documents for many different formats, it has a nice way to reference sections of documents, add code support, and seems to have all the basic features you need. It is very similar to markdown but writing something in restructured text means you can output in just about any document format you need (its much better than markdown or html, imo.) Your question about content and computation is difficult. When I was writing docs for my side project I would have liked to have done something similar to having an interpreter run in the page itself and have interactive code you can play with. But such an approach wasn't quite practical (ive seen some top-tier docs do this though!.) Though I ended up writing all my code examples in such a way that they're tested in the unittests. So I at least know if anything breaks. Good luck with the project
- sampo 3y ago> https://arxiv.org/abs/2310.04368 https://arxiv.org/abs/2310.04368 Did you use Nota to write this paper?
- jessriedel 3y agoI'm also curious. As always for the arXiv there is latex source code for the paper available at the "Other formats" link, and I'm having a hard time telling if its been auto-generated from Nota, but I presume it has given the visual similarity.
- simpaticoder 3y agoWow, Nota looks good. I created something similar I call "Literate Markdown"[1], a play on Knuth's "Literate programming" concept. My focus from the beginning was interleaving computation with explaination. It's been a lot of fun to work with for the last few months, for example to explore ideas around SVG animation[2] or flesh out a novel datastructure/algorithm[3]. Also, its about 500 lines of legible node code that is the entire server and markdown processor with very few dependencies, no transitive dependencies and it does not require a compilation step. By default the server allows no 3rd party resources, or cookies, of any kind because why not. It's MIT licensed on github. I want to move it to an organization repo instead of my personal repo and clean up the repo in the process, which is happening today. 1 - https://simpatico.io/lit https://simpatico.io/lit Literate markdown reference. 2 - https://simpatico.io/svg https://simpatico.io/svg svg animation using object to elt scattering and a RAF pump 3 - https://simpatico.io/stree3 https://simpatico.io/stree3 A navigable n-arry representation of diverging, deterministic state
- horsh1 3y agoIt would be interesting to see if Nota could solve one problem that TeX and LaTeX, while theoretically capable, don't really solve in practice. Namely, the ease of styling according to dumb external requirements. Just to give you several examples: * Very tight, but very loaded layouts like A0 conference posters * Apply a national standard, such as, for example, post-Soviet GOST documentation styling standards * All combinatorial explosion of bibliography styling requirements in different international traditions * Make the documents look like a default style in so and so MS Word version * Precise positioning of one picture upon another, or text upon a picture for quickfixes in the papers * Be able to consciously tweak any of the above The problem with tex universe solutions here is while technically all of the above is possible, in practice it requires some black magic far deeper than a lay person (even with a scientific degree) wishes to dive into.
- esafak 3y agoTemplates are one reason products like Notion took off: they simplify the product, and build community at the same time.
- kyawzazaw 3y agoNot superrelated but having a resume layout in Nota will drive adoption with high velocity
- miniBill 3y agoI really don't like Nota, but you get my upvote because: 1. Typst is amazing and 2. you are open to criticism and are looking to redesign it, and I am hopeful you'll create something good