``
title:                  IDK To dos
last_modification_date: 2024/10/13
creation_date:          2024/10/13
summary:                Everything in mind for the future of IDK markup.
output_path:            "/html/idk/idk_todos.html"
category:               "todos;idk;parser;"
``
---

Features  
  1. Add a strike through token.
   . Add the http checker which will permit to check all http links of the document (done already, but have to plug it to IDK parser).
   . Permit to specify the amount of whitespace of one indentation.
   . More robust and detailed error logger for normal user 
    a. error on ids duplicated (inline links, footnotes)
   . Use a single table on inlined tables in order to be aligned (row + header)
   . Convert HTML to IDK
   . Having toggle for all context in a group (id est discussions)
   . Permit to test in real time the markup
   . Permit to create a table from CSV file format `table(col1;col2;val1;val2;)`
   . Permit `Total` in tables.
   . Permit to add dynamic content inside Raw 
   . Linux layer (far future) 
   . Permit to write a todo, which will be extractable as a text with todos from all idk files
   . Find a better name for the IDK markup (IDK was for "I Don't Know" primarily).
   . Permit Full unicode.
   . write a roadmap for IDK
   . Permit to specify a image link as being an Icon
   . Permit configuration, avoiding hairy command line arguments (configuration file parser already created).
   . From HTML to IDK file format.
   . Profiling, permiting to provide performance analysis of the software and avoid performance decrease after modification.
   . Markdown conversion.
   . produce a `DLL` from the source code.
   . Permit to decide if a table's column will have fixed width.
   . automatic last modification date.

Improvements
  1. Remove the need to add "." to the last item of the inlined list.
   . derive the correct item indentation on automatic item. On automatic numbering items, if we are one MORE (less is fine) indentation off, it will not be set as item
   . auto indentation correction.
   . on html, specify a link file with internal link _without name_ is displaying the full path, it should display the filename only without extension `"/idk/idk_readme.idk[#1]"` becomes "idk_readme"
   . internal links: `"/idk/idk_readme.idk"[#1]` seems better than current `"/idk/idk_readme.idk[#1]"`
   . allow other than 2 whitespace for 1 level.
   . check if an internal link was set two times, if it does increment the index and give warning message.
   . make it possible to have a link + the interal link inside another document.
   . Better quotes readability (UX and text organization).
   . Inlined table must have their rows aligned.
   . possibility to ask to transform relative file paths into Drive absolute path inside the idk document
   . Cleaner UX: nicer, _more convenient_
   . Discussion: possibility to provide a context after the text ( currently, only before the text is allowed)
   . Always show the table of content, even when empty 
   . Text block using <pre> tag for webcrawlers
   . Permit to have empty table's cell. We have to add `-` for empty
   . Add a way to specify the raw text type, which will permit interpreters to skip if necessary
   . Better tables: better handle when their columns are not aligned, permit another type of table (quicker to write).
   . Add a timeline structure in which writer, using List, that permit to specify chronological steps with specific fraction defined by the writer (id est a roadmap).
   . A `listen` argument which will not stop until asked and listen to any file modification.
   . signal when a footnote reference as no matching footnote
   . signal when a internal link reference as no matching internal link
   . code highlighting.
   . add "listening ..." log while program is running.
   . Use the Fira Code font which as a lot of glyph needed for symbols, replacing some of the `icon.ttf` ones.
      a. use `UNI2620` for broken links.
      b. use it for footnotes numbers
      c. use `U+e0a2` for lock.
      d. use `U+2388` for internal links.
   . Tell user when a file name is already present in the folder output. 
   . with only one backslash, be able to escaped a group of tokens `\"https://alink.com"(a link)`
   . Permit to avoid file link or http link check when the flag is set. Because sometimes you know it is not a valid link but would not want the parser to notify it as broken.
   . Permit to specify an internal link before it is set in the document.
   . Be able to have an internal link on a context, which will permit to write a context in narrow place like in a table's cell, this must not behave like an internal link thought, the parsing will not see the internal link, it will see it as a context node.
   . Vertical tables, which will permit better suited representation on certain data relation.
Internals
  Improvements
    1. Make the '(' and ')' in a link not represented (useless data).
     . Table: skip the extra cells not having column. When cell idx > column count, skip them (no fail)

Bugs
  1. IDK/HTML comments conversion 
   . Some broken  links are not reported as Broken. Id est https:/invalid_URL is consider
   . when a checkbox is used as the first word of a text block
   . Table HTML creation break when a link + text are writtent inside the same cell
   . Having footnote references at the last of Heading will break the HTML structure
   . If no separator (\---) below the document's context is provided, it will break the first title.
   . Adding a Raw text to a link description breaks the parsing.
   . deep discussion thread (deep child node not append to the correct one).
   . If a paragraph is after a list, it will be parsed as the list's item.
   . infinite loop on ` ``1. item one 2. item two 3. item three.`` ` (a context with inlined list, is not allowed anyway)
   
Tools
  1. VSCode extension for error reporting
   . VSCode highlight syntax extension
HTML conversion
    Bugs
       1. Compress embedded fonts and js file
        . image zoomer
        . if a file is not present from a file_link, it will set the href with the full local path.
        . link inside a context create invalid html, a `<a>` cannot be inside a span.
    Features
      1. dark theme
       . interactive table
       . possibility to use vector based UI 
       . more efficient CSS rules, use less memory, avoid inlined css rules.
       . using toggle css class, make all the toggles open in one click.
       . advance copy by mouse selection (CTRL+C). For example, selecting a table should copy an IDK markup table, this way someone will be able to transfer it inside a IDK document very quickly.
        a. All selection will be translated as IDK markup when copying them which will make very readable tables, very readable footnote references and so on. With the raw text sent in parallel to the HTML, it will be easy but make it performant will not.
    Improvements
      1. Automatic sitemap file created at build time.
       . Better discussion thread rendering.
       . special display on table's cell when empty (darken the cell or something similar).
       . Send the raw file which will permit nice feature like finding the exact byte offset of the text clicked and more.