Table of content:
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.
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.
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.
It should have possibilities to encode complex writing and relations between part of texts.
It should keep the basic writing features very easy to read, for comparison it should be a bit more readable than Markdown file format.
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.
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.
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.
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.
By having a possibily to do it will permit writer to alter the markup for their own needs.
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.
IDK must produce HTML which is compliant to the specs, the output is checked regularly to see if it does.
Below are the possibilities of the IDK markup in practice.
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 paragraphWe 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)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 :
Note: a link will be set as broken only if you specify the IDK parser to check them.
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).
A bold text
A italic text
Text formating is available on all IDK textual types (textuals, context, quotes, links).
multiple level lists is possible.
ordered alpha
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
As in most markups, we can write unformated block text:
This text is unformated and keep its whitespaceWe 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.
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 9 | C3A 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 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.
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.
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.
AthenaPortlyAthenaPortlyThere 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.
DarelldarrellprogramsIndeed, so it just adds random noise to the selection process.
DarelldarrellprogramsJerky 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 AaltonenSebAaltonenElephant 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 Doe0-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
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 ...
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 are or
Sometimes you want to write pure text which potentially can be interpreted by a program, like HTML parser.
You can do it inlined too :