Hashtagged plaintext to HTML
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
emsenn 6726b1ca7d Fix errors around newlines, add add-hashups function 1 month ago
README.md first commit 1 month ago
documentation.hashup.txt add documentation file, using hashup syntax! 1 month ago
hashup.fnl Fix errors around newlines, add add-hashups function 1 month ago

README.md

HashUp

HashUp -> (HashUp Processor) -> HTML

HashUp is a (potential) syntax for adding semantic data to an otherwise plain text, without reducing readability. Inspired by Racket’s @-expressions and Org-mode macros.

#start-personal-log{2020-10-22-10-30}

Today I'm going to be planning ##HashUp, my alternative to #Markdown that
steps away from visual formatting into the realm of #semantics.

#end-personal-log
<section class="personal-log">October 22nd, 2020, 1030h
  <p>
    Today I'm going to be planning
    <a class="indexed-hashtag" href="/tags/hashup/">HashUp</a>, my alternative
    to <a class="external-reference" href="https://link.to.markdown.spec">Markdown</a>,
    that steps away from visual formatting into the realm of
    <a class="unindexed-hashtag" href="/tags/semantics/">semantics<a>.
  </p>
</section>

All keywords start with a HASH (#), possibly followed by either another HASH, then a WORD, and then possibly a pair of {} enclosing some text or numbers, the ARGUMENT.

To process hashed-up text to HTML, it is run through a processor which looks at a corpus of functions which correlate to the various WORDS.

In the above example, start-personal-log, HashUp, Markdown, and end-personal-log are all WORDs. The first takes its argument, translates it as a date, and returns a <section> tag. And so on. WORDs are also capable of manipulating processor-wide configuration, for example the function corresponding with start-personal-log may configure the processor’s element-wrapping-tag to be <p>, when it might be <section> or <span> by default.

Note: there are no plans for validation of hashed-up text files: if you call a start word, you’ll be expected to end it: the processor will (likely) create an invalid HTML declaration otherwise.

It requires direct coordination between the processor and the writer, which often isn’t feasible, but since I, personally, am the writer, editor, and publisher of my own stuff, it seems like a worthwhile endeavor.