IDK markup documentation, which describe how to use it.IDK's goalsIDK's todosIDK's readmeIDK's technicaldocumentationidk

IDK Documentation

Table of content:


Why another markup?

We already have several markups out there which are used very heavily, Markdown and XML are most popular ones. XML is data oriented but is ineficient in several ways. Mardown is writing oriented and almost what I would need for it but is not data oriented. The IDK markup goal is to have both of the two worlds, a markup which balance towards a plain text format and towards data representation.

Data oriented

The markup must provide ways to search and mark text as data, numeric, token, text. All of them should have ways to encode fine details in them.

Simple writing

The markup should be usable at first try, added feature should not break that. If someone new to it is having hard time to understand why the way he wrotes the text fail or having lot of error while writing simple text, there is high probability that the markup should change.

While allowing complex ones

It should have possibilities to encode complex writing and relations between part of texts.

A brise to read

It should keep the basic writing features very easy to read, for comparison it should be a bit more readable than Markdown file format.

Good enough error/warning logs

Having very detailed logs is not the goal yet, but it must catch error with precise location and avoid stack trace like Java. The parsing should fix as possible as error it can, helping the writer to not much think about his writing.

Having two side faces

It should be as a tool which have two personalities, one side will permit very easy writing, the other will be highly capable of transforming the text and represent its meaning.

Highly performant

No compromise should be made on the performance, the parser should be able to parse hundreds of file, checks their links in a very short time scale. The purpose is to be able to use it for computation, for the bonus it will have responsive UX.

Simple to reproduce

Something is right for every file format adoption, it must be easy to implement. To achieve that there is several ways, provide tools easy to use and integrate, be open. The markup should do all of them.

Roadmap

  1. Experimenting with the actual markup design.
  2. Fix the current specification (bugs, unperfect design).
  3. Add new features and specs to the markup.
  4. Finish the HTML/javascript conversion (IDK to HTML and HTML to IDK).
  5. Create tools for code editors integration.
  6. Create a stand alone software with a UI, which will use this markup but with enhanced writing and permit data visualization (graphs of data, permit saving of PDF chunk of text and give them details and more).

Having metawriting

By having a possibily to do it will permit writer to alter the markup for their own needs.

Majority of features is available anywhere

Majority of the IDK possibilities are available everywhere where it make sense. Id est a table's cell must have the formating capacity, footnote reference and more. So keep in mind that if you see a feature listed below there is high probability to be available for your exotic use case.

HTML conversion

Be compliant to the standard

IDK must produce HTML which is compliant to the specs, the output is checked regularly to see if it does.


Specification

Below are the possibilities of the IDK markup in practice.

Headings and paragraphs

Indentation is used to derive the type of text in the structure of the document.

Heading 2 paragraph Heading 3 paragraph Heading 4 paragraph Heading 5 paragraph

Links

We can specify URI links and file link and have the IDK parser check them quickly, if we specify to do so it will inform reading that the file is broken like this oneunlike this one.

// link broken "https://invalid_one.com"(one) // link ok "https://duckduckgo.com"(one)

Images

A link can then be specified as an image. Can be used for icons or large images because writer can set its dimension. Icon like this : from my town, Capbreton.

from my town, Capbreton.

Note: a link will be set as broken only if you specify the IDK parser to check them.


Text formating

We can add formatting to a text, which add specificity to a text. For example, adding italic to a text means that the text is emphasized (not visual only).

Bold

A bold text

Italic

A italic text

Text formating is available on all IDK textual types (textuals, context, quotes, links).


List

multiple level lists is possible.

  1. item 1
  2. item 2
  3. item 3

ordered alpha

  1. alpha item 1
    1. item a1
    2. item a2
      1. item ab1
      2. item ab2
      3. item ab3
    3. item a3
  2. alpha item 2
    1. item b1
    2. item b2
      1. item ab2b1
      2. item ab2b2
      3. item ab2b3
    3. item b3
  3. alpha item 3
    1. item c1
    2. item c2
    3. item c3

unordered

The first bullet will determine if the list is unordered or ordered (alpha or numeric). On ordered list, if writer does not specify the index, IDK parser will automatically derive it from the previous item.

List are available inlined too

A text with a list item one item two item three

Block text:

As in most markups, we can write unformated block text:

This text is unformated and keep its whitespace

Escaping tokens

We are able to escape any reserved token by preceding it by "\".

this is not _a bold text_

Notice that the "\" token will not be displayed when converted in a format other than IDK.


Unconventional text

Tables

IDK markup permit to write table which are easy to read in it's pure form.

C1 C2 C3
C1 A C2 A C3 A
C1 B C2 B C3 B
C1 C C2 C C3 C

Note that you can spam row in any amount of line you want.

In addition you are able to have side by side tables. Which means all tables side by side are related. Note that you can have any amount of table side by side.

Table 1

C1 C2 C3
C1 A C2 A C3 A
C1 B C2 B C3 B
C1 C C2 C C3 C
C1A C2A C3A
C1A A C2A A C3A A
C1A B C2A B 9C3A B
C1A C C2A C C3A C
C1B C2B C3B
C1B A C2B A C3B A
C1B B C2B B C3B B
C1BC C2B C C3B C

Context

Context is a crucial part of IDK markup. It is a way to have a text which add details on the previous text written. It will not be a part of the text (not directly visible when you read the text). Instead, reader is able to interact in order to read it, which permit better readability. When converted to HTML, it means that a button is clickable that enable the reader to see it.

It is used to add details on how the previous text was written. Great for quick notes, writer is able to convey informations on the conditions it was written.

Heading 2paragraphHeading 3paragraphHeading 4paragraphHeading 5paragraph

Context is available inlined too:

This is a text in which we append a context · this is a text · a link. That way we can

Same stuff is available to it than normal context except text level (headings and paragraph), eveything is regular text.

This is an unformated text hello unformated

Discussion threads

We can represent a discussion by using token "<" and ">" and indentation. One deeper indentation means that it is a reply of the quote having one less indentation.

Sebastian AaltonenSebAaltonenI am not conviced by this but will think deeper.

The wrong answer is throwing away your career to do something with the elephant, like running a circus. The elephant is a distraction as you are a professional software developer focusing on your career. Your skill set is much better used for writing code. It's a trap question.

AthenaPortlyAthenaPortly

There is no right or wrong answer for such a ridiculous question.

It's just a matter whether you'll manage to read the mind of the employer and answer it the way he/she wants you to answer.

Darelldarrellprograms

Indeed, so it just adds random noise to the selection process.

Darelldarrellprograms

Jerky interview questions weed out people who lose their temper, have a bad attitude,

or otherwise lack the grace to respond in an appropriate way when taken off script. This won't help you find the best candidate, but it will help you eliminate a lot of terrible ones.

Sebastian AaltonenSebAaltonen

Elephant burgers!

Note that we can write ">" or "<", it is interpreted the same. It is just for better readability.

Each quotes can have same details as context.

Inside context, writer has access to all the textuals IDK markup provides: discussion threads, links, text's formatting. Plus extra keyword (author, author_link, creation_date, last_modification_date, remark, title, excerpt, summary).

John Doe
0-indexed arrays are superior to 1-indexed arrays.0-index is so good, some might even say, in the completion of indexes, it would take the 1st place.
"text quote 1B"link quotewe are used to the 0 zero index array but its creates confusion while writing code like while looping its = length or = length -1 or lengthlink A

Footnotes

When we do not want to use context inlined because their make reading complicated when too long, we can use transcripts which does similar.

Let's say we write a text and we decide to append a 1. This is not a regular footnote, because writer can append it anywhere in the document, but the function is the same, and keeps the same possibilibilities than context.

some text are written ...

Internal links

They permit to reference a link inside the same document. It goes this way: we reference here 1, you can add descriptive link by appending () to it like 4the link's name.

We allow to have link inside regular text 2and on title 1or inside a table cell 3.

Because one of the IDK markup's goals is to be able to write text without fancy text editor, we want the link to be easily searchable when link reference is encountered, so we just add a _ to the link to differentiate them.


Checkbox

Checkbox are or


Raw text

Sometimes you want to write pure text which potentially can be interpreted by a program, like HTML parser.

You can do it inlined too :

Raw