[HN Gopher] Skribilo: The Document Programming Framework
___________________________________________________________________
Skribilo: The Document Programming Framework
Author : Tomte
Score : 77 points
Date : 2024-07-31 19:23 UTC (1 days ago)
(HTM) web link (www.nongnu.org)
(TXT) w3m dump (www.nongnu.org)
| XorNot wrote:
| I'm sorry but this looks _terrible_.
|
| This is an example on the main page: (p [Skribilo
| is a ,(freedom [free]) document production tool that takes
| a structured document representation as its input and renders
| that document in a variety of output formats: HTML and
| ,(info [Info]) for on-line browsing, and ,(lout [Lout]) and
| ,(latex [LaTeX]) for high-quality hard copies.])
|
| ...imagine trying to write like this. It's essentially the
| opposite of what Markdown accomplished, which was taking a bunch
| of human conventions which were developed mostly out of ease of
| use (table formatting being the one which doesn't work well IMO)
| and adapting them so they can be parsed into nice text.
|
| Whereas this takes the most awkward possible syntax and
| completely ruins what you're looking at.
| Cyphase wrote:
| To fix the formatting there: 121: (p
| [Skribilo is a ,(freedom [free]) document production tool that
| 122: takes a structured document representation as its input
| and renders that 123: document in a variety of output
| formats: HTML and ,(info [Info]) for 124: on-line
| browsing, and ,(lout [Lout]) and ,(latex [LaTeX]) for
| 125: high-quality hard copies.])
|
| The numbers on the left are line numbers, not part of the code.
| XorNot wrote:
| Just noticed that (HN formatting for quote embedding always
| surprises me).
|
| But I did know they were line numbers, I just wasn't going to
| strip them out - my point was that the scheme-style brackety
| inline syntax looks atrocious to try and write, follow or
| manage compared to the alternatives when the target is
| "documents" not "programming". Documents are first and
| foremost about content production.
| BenFeldman1930 wrote:
| That line of thought requires us to take unnecessary and
| costly effort to deduce structure from content. For
| example, finding a date in an e-mail body via regular
| expressions or NER tools. If the structure of the content
| is explicit, we know what part of the text is a date and
| what parts are not.
| Skeime wrote:
| While I do agree that extensibility is vital for a
| general tool like this (and Markdown isn't), I also think
| that it is necessary to make certain concessions to
| standard elements (like paragraphs) in a text. I think
| TeX and Typst get this right, for example, and writing
| text is the default, with light-weight markup for
| paragraphs. Both of them then have ways to still switch
| into "structured" markup where desired.
|
| Also, just offering the ability to introduce structure
| does not mean that it is done. For example, I could still
| write (p [I write this comment on
| August 1, 2024.])
|
| So there is the question whether using something like
| Skribilo would really save us from having to
| heuristically extract dates from e-mail bodies in
| practice.
| xigoi wrote:
| > It's essentially the opposite of what Markdown accomplished,
| which was taking a bunch of human conventions which were
| developed mostly out of ease of use (table formatting being the
| one which doesn't work well IMO) and adapting them so they can
| be parsed into nice text.
|
| That comes at the cost of only having a few hardcoded features
| and not allowing extensions, making it hard or impossible to
| write anything non-trivial.
| __MatrixMan__ wrote:
| I dislike defining a separate function for each link, but
| presumably one could chose to do that differently. Otherwise I
| think it's pretty nice.
|
| I tried to explain to my wife why markdown is better than
| google docs and we gave up when I was unable to justify the
| arbitrary choices re: [this is a link](to some place) vs . This doesn't have that problem.
| kaynyn1 wrote:
| Unless we have linters support for various IDEs and tools, it
| gets extremely annoying to keep adding tabs/spaces wherever
| required. Markdown shines in this aspect as I can take a basic vi
| and create a document that gets formatted to acceptable levels.
| JonChesterfield wrote:
| I really like scheme. Strongly in favour of prefix notation.
| Still cannot imagine having the patience to write significant
| amounts of prose in this layout when commonmark -> s-expressions
| or XML or HTML is readily available.
|
| (item [Packages are available to produce: ,(ref :skribe %user-sui
| :ident "slides" :text [slides]) (overhead transparencies), ,(ref
| :skribe %user-sui :ident "pie-charts" :text [pie charts]), ,(ref
| :skribe %user-sui :ident "equations" :text [equation
| formatting]), ,(ref :skribe %user-sui :ident "programs" :text
| [syntax highlighting of computer programs]), and others.])
|
| The signal to noise there is not good enough to compete. There's
| way too much repetition of annotation words.
|
| The links to markup language and the simpler syntax were expected
| to tell me what the syntax is, not what a markup language is.
| Maybe the simpler syntax is more workable - the page doesn't show
| what that looks like.
|
| edit found it in the docs, looks a lot more like markdown.
| https://www.nongnu.org/skribilo/doc/user-3.html#skribe-synta...,
| can't seem to link to the subheading.
|
| So maybe this is a good thing with a landing page that drives
| newcomers away? Quite on brand for scheme if so.
| neilv wrote:
| > _I really like scheme. Strongly in favour of prefix notation.
| Still cannot imagine having the patience to write significant
| amounts of prose in this layout_
|
| The Racket people made a Scheme-based documentation formatter,
| called "Scribble", which includes a specialized syntax that's
| much more amenable to writing natural language text than
| s-expressions are: https://docs.racket-
| lang.org/scribble/
|
| All/most of the Racket documentation is written using Scribble
| now.
|
| I started writing a book about Racket using Scribble, so of
| course needed an Emacs mode:
| https://www.neilvandyke.org/scribble-emacs/
|
| I've also adapted Scribble for API documentation embedded in
| source code. (After previously doing embedded TexInfo. Though,
| if I ever return to Scheme, I currently want to switch the
| embedded docs to Markdown, simply because lately I'm trying to
| promote a pragmatic, lightweight "Markdown everywhere" for
| software developers.)
| NackerHughes wrote:
| Not to be confused with the online Pictionary clone Skribblio
| https://skribbl.io/
| shrubble wrote:
| I have decided that "this is the year I learn Scheme" so this is
| very interesting, though it does look a bit intimidating; perhaps
| there is a "Skribilo-mode" in Emacs that makes it easier, though?
| danielvaughn wrote:
| I'm going through SICP right now, and it uses Scheme. Just in
| case you aren't aware of it: https://mitp-content-
| server.mit.edu/books/content/sectbyfn/b...
|
| It's a great introduction to s-expressions in general. I'm
| still early on but I love it and can see why it's a classic.
| whilenot-dev wrote:
| FYI there's also a JavaScript edition available:
| https://mitpress.mit.edu/9780262543231/structure-and-
| interpr...
| benterix wrote:
| i have to admit this looks neat:
|
| (mark "self")
| __MatrixMan__ wrote:
| I'm teaching a friend to code. We're not starting with a lisp,
| but I wanted him to understand why the idea of dispensing with
| bespoke syntax in favor of s-expressions is not crazy. That is,
| why the "soul" of a language is not its syntax.
|
| He knows HTML already. Many do, we were raised by Myspace after
| all. So, this page turned out to be a great example of some
| nontrivial lisp to look at together. I also love how the code for
| the page is in the page, so you don't have to look elsewhere to
| see what it's trying to render.
|
| I may or may not use the tool, but I'm quite happy it exists.
| Thanks!
___________________________________________________________________
(page generated 2024-08-01 23:02 UTC)