Differences between revisions 70 and 71
Revision 70 as of 2017-08-16 18:13:16
Size: 21461
Editor: KaiJaeger
Revision 71 as of 2017-09-15 19:56:29
Size: 21890
Editor: KaiJaeger
Deletions are marked like this. Additions are marked like this.
Line 17: Line 17:

=== Version 3.4.0 from 2017-09-15 ===
 * '''Breaking change:''' the meaning of `markdownStrict` has changed: it's now called `syntaxSugar` and defaults to 1. `markdownStrict` still exists but with a default of 0. In case it is 1 certain enhancements are not honoured: list items must then start with an empty line and footers in tables are not recognized.
 * Bug fix: In-line mark-up within a link text was not processed.

MarkAPL Project Page


  1. MarkAPL Project Page
    1. Bugs
    2. Future Enhancements
    3. Version History
      1. Version 3.4.0 from 2017-09-15
      2. Version 3.3.0 from 2017-08-16
      3. Version 3.2.0 from 2017-05-20
      4. Version 3.1.1 from 2017-05-19
      5. Version 3.1.0 from 2017-05-12
      6. Version 3.0.1 from 2017-04-09
      7. Version 3.0.0 from 2017-03-24
      8. Version 2.8.8 from 2017-03-16
      9. Version 2.8.7 from 2017-02-10
      10. Version 2.8.6 from 2017-02-10
      11. Version 2.8.5 from 2017-01-12
      12. Version 2.8.4 from 2017-01-05
      13. Version 2.8.3 from 2016-12-31
      14. Version 2.8.2 from 2016-12-27
      15. Version 2.8.1 from 2016-12-12
      16. Version 2.8.0 from 2016-12-07
      17. Version 2.7.0 from 2016-12-02
      18. Version 2.6.4 from 2016-11-22
      19. Version 2.6.3 from 2016-11-19
      20. Version 2.6.2 from 2016-11-17
      21. Version 2.6.1 from 2016-11-15
      22. Version 2.6.0 from 2016-11-08
      23. Version 2.5.1 from 2016-11-03
      24. Version 2.5.0 from 2016-11-03
      25. Version 2.4.0 from 2016-10-25
      26. Version 2.3.0 from 2016-10-20
      27. Version 2.2.5 from 2016-10-18
      28. Version 2.2.4 from 2016-10-08
      29. Version 2.2.3 from 2016-10-07
      30. Version 2.2.2 from 2016-10-05
      31. Version 2.2.1 from 2016-10-03
      32. Version 2.2.0 from 2016-10-01
      33. Version 2.1.1 from 2016-09-21
      34. Version 2.1.0 from 2016-09-20
      35. Version 2.0.3 from 2016-09-08
      36. Version 2.0.2 from 2016-09-07
      37. Version 2.0.1 from 2016-09-05
      38. Version 2.0.0 from 2016-08-31
      39. Version 1.8.4 from 2016-07-24
      40. Version 1.8.3 from 2016-07-15
      41. Version 1.8.2 from 2016-07-03
      42. Version 1.8.1 from 2016-07-02
      43. Version 1.8.0 from 2016-06-20
      44. Version 1.7.9 from 2016-06-15
      45. Version 1.7.8 from 2016-06-15
      46. Version 1.7.7 from 2016-06-14
      47. Version 1.7.6 from 2016-06-11
      48. Version 1.7.5 from 2016-06-09
      49. Version 1.7.4 from 2016-06-06
      50. Version 1.7.3 from 2016-06-06
      51. Version 1.7.2 from 2016-06-02
      52. Version 1.7.1 from 2016-05-31
      53. Version 1.7.0 from 2016-05-17
      54. Version 1.6.2 from 2016-05-06
      55. Version 1.6.1 from 2016-04-27
      56. Version 1.6.0 from 2016-04-20
      57. Version 1.5.0 from 2016-04-19
      58. Version 1.4.4 from 2016-04-18
      59. Version 1.4.3 from 2016-04-12
      60. Version 1.4.3 from 2016-04-12
      61. Version 1.4.2 from 2016-04-11
      62. Version 1.4.1 from 2016-04-11
      63. Version 1.4.0 from 2016-04-08
      64. 1.3.2 from 2016-03-24
      65. 1.3.1 from 2016-03-21
      66. 1.3.0 from 2016-03-19
      67. 1.2.1 from 2016-03-09
      68. 1.2.0 from 2016-03-03
      69. 1.1.1 from 2016-02-17
(Hide table-of-contents)

Link to MarkAPL's home page


Future Enhancements

  • Why is there no Code2Markdown helper?

Don't hesitate to add your wishes here.

Version History

Version 3.4.0 from 2017-09-15

  • Breaking change: the meaning of markdownStrict has changed: it's now called syntaxSugar and defaults to 1. markdownStrict still exists but with a default of 0. In case it is 1 certain enhancements are not honoured: list items must then start with an empty line and footers in tables are not recognized.

  • Bug fix: In-line mark-up within a link text was not processed.

Version 3.3.0 from 2017-08-16

  • Tables can now have a footer.
  • Bug fix: SeText headers did not allow up to three leading white spaces.

Version 3.2.0 from 2017-05-20

  • CSS improved for both screen and print: lists (particularly nested ones), tables and blockquotes.
  • Bug fixes
    • cssUrl required a file delimiter at the end. It should be optional.

Version 3.1.1 from 2017-05-19

  • Bug fixes
    • Lines that should be empty really but consist of nothing but blank characters could cause MarkAPL entering an endless loop. Now all trailing blanks are deleted before any markdown is processed.

Version 3.1.0 from 2017-05-12

  • Bug fixes
    • C:\Users\\{username}\ should become C:\Users\{username}\ but did not.

    • A function call that carried a _ failed because the _ was converted into <em>.

    • Help might have complained about not finding the file MarkAPL_CheatSheet.md even when the right argument was 0 (=no recompile of the Markdown required).

    • Three ||| where treated like a code fence (like ~~~) by mistake.

    • Handling of http://, file:// etc. on cssUrl was incorrect.

  • Setting subTocs to 1 has no effect now in case toc is 0.

  • MarkAPL is now managed by acre 3.

Version 3.0.1 from 2017-04-09

  • Bug fix: both Help and Reference crashed with a 0 as right argument.

Version 3.0.0 from 2017-03-24

  • Lists may now contain tables, images and quotes. (So far only paragraphs, code blocks and sub-lists were supported)
  • Bug fixes:
    • Lines in lists with a wrong indentation could completely disappear.

Version 2.8.8 from 2017-03-16

  • Bug fix: With 2.8.7 commented lines were ignored completely, not only in code blocks.

Version 2.8.7 from 2017-02-10

  • Bug fix:
    • Comment lines within a code block disappeared under some circumstances.

Version 2.8.6 from 2017-02-10

  • Bug fixes:
    • Under some circumstances a footnote ref was not recognized as such.
    • MarkAPL called one of its own methods with a fully qualified name.

Version 2.8.5 from 2017-01-12

  • A header (#) without any caption crashed MarkAPL.

Version 2.8.4 from 2017-01-05

  • Bug fix: embedded code tat contained _ or * was not displayed correctly.

Version 2.8.3 from 2016-12-31

  • Bug fix: URLs in links were accidentally printed to the session.

Version 2.8.2 from 2016-12-27

  • Bug fix: problems are now not reported to the session if it is not...

    • ... a development version.
    • ... there is nothing to report (in the past an empty vector was printed).

Version 2.8.1 from 2016-12-12

  • Version 2.8.0 broke code blocks that are part of a list under some circumstances.

Version 2.8.0 from 2016-12-07

* HTML entities can be injected now (in the sense of them being converted) by escaping the & character. So far & has not been an escapable character. * A URL in a link that does not specify the protocol now defaults to http://. This is not true for autolinks! * Bug fixes:

  • \\ outside code should become \ but did survive instead.

  • The lists created inside <nav> (TOC) were wrongly structured (although they worked fine).

  • Documentation failed to mention the affect of markdownStrict←1 regarding Guillemets.

  • A URL in a link that carried a _ caused havoc.

Version 2.7.0 from 2016-12-02

  • Pairs of double quotes are now converted into their typographically correct aquivalents. Note that the rules depend on the country, therefore MarkAPL takes the lang parameter into account. Previously always the anglo-saxon version was chosen and lang was ignored.

  • << and >> are now converted into Guillemets.

  • Bug fixes:
    • Default alignment for table header cells is "center", at least in Chrome. We overwrite this with "left", the default for all non-header cells.
    • [] definitions that qualify neither as reference link nor data nor embedded parameter were simply ignored; they are ought to become part of the document.

    • A backslash to the right of a double-quote is not considered an escape character when there has been an opening double quote before.

Version 2.6.4 from 2016-11-22

  • Two empty lines after a definition list crashed MarkAPL.

Version 2.6.3 from 2016-11-19

  • The search algorithm for homeFolder (performed if not set) was faulty.

Version 2.6.2 from 2016-11-17

  • The attempt to recognize compound names when processing in-line mark-up had problems. Compound names are rare, and most authors prefer to show them verbatim (=as code) anyway, so the "feature" was removed because the harm was bigger than the gain.

Version 2.6.1 from 2016-11-15

  • Bug fixes:
    • Numeric columns were not right-aligned by default depending on the data type.
    • A SeText header that carries the word "code" in it crashed MarkAPL.

    • Invalid CSS could crash MarkAPL.
    • When header and data defined different numbers of columns MarkAPL crashed.
    • A table definition were the data defined different numbers of columns made MarkAPL crash.
    • In case cssUrl started with file:// MarkAPL crashed.

Version 2.6.0 from 2016-11-08

  • MarkAPL parameters can now be defined as Data within the document. That allows a document to carry its own parameters. See MarkAPL.md and MarkAPL_CheatSheet.md for examples.
    The format is [parms]:{name}={value}. Those definitions must be the very first in a document.

  • New parameter noCSS introduced. Boolean that defaults to 0. Set this to 1 to have no CSS at all.

  • New help Matrix2MarkdownList added.

  • The default for the title parameter is now the level-1 header if their is exactly one.

  • Bug fixes:
    • A header that contained "[]" as code was not processed correctly.
    • Any text that contained an opening < in the very first position but no > was processed incorrectly.

    • Any SubTOC did not make use of a specific ID assigned as a special attribute.
    • A SubToc definition that followed straight after a paragraph was process as text.

    • A SubTOC silently ignored just a single entry; now it reports those instances on ns.report.

    • When a header carried text like -- or --- would cause invalid bookmark links in any Sub TOC because they would be be transformed into – and — respectively.

Version 2.5.1 from 2016-11-03

  • The newly introduced report on links (print only) did not remove doubles and repeated the URL in case there was no link text.

Version 2.5.0 from 2016-11-03

  • Method Matrix2Markdown (introduced with 2.3.0) renamed to Matrix2MarkdownTable. We must be able to add more helpers in future versions, and the method name then needs to be more specific.

  • New parameter reportLinks introduced which defaults to 0. If this gets 1 then a list with all external links in the document is injected just before the footnotes. Note that the list shows only in print.

  • The new parameter reportLinksCaption is put above the link report as <p><strong>.

  • The default CSS now supports font embedding: in case the "APL385 Unicode" font is not installed locally the font will be downloaded in the background and installed temporarily. Drawback is that this will happen even if the font is not used.
  • By setting the newly introduced parameter collapsibleTOC to 1 (default is 0) one can enforce that the TOC is positioned absolutely to the top-right corner. It is also collapsed then, but the user can unfold it by clicking on "show" and shrink it at any time by clicking at "hide" at a later stage.

    • Note that this enhancement required some additional CSS and also a minor change of the HTML within the <nav> element. The text pieces for "show" and "hide" can be changed by setting the newly introduced parameter showHide which defaults to "Show;Hide".

  • If CSS is included rather than linked to (that's the default) then two changes take place:
    • The CSS is now compressed by default. That makes the resulting document a whole lot smaller. This can be changed by setting the newly introduced compressCSS parameter to 0.

    • The width of the document, which defaults to 900, can be changed by setting the newly introduced width parameter accordingly. Has an effect only when the CSS is embedded.

  • With the newly introduced parameter enforceEdge (which defaults to 1) one can make sure that the document is processed by the latest Internet Explorer engine when displayed with the Microsoft Webbrowser control. In other scenarious this should have no effect whatsoever.

  • With the newly introduced parameter lang one can set the language of the HTML page. It defaults to "en".

  • An <img> now always gets alt=, even if there is no such text defined. Then alt ends up as alt="". This is because otherwise the HTML is considered buggy by the W3C validator.

  • New parameter footnotesCaption introduced which defaults to "Footnotes". This is put into <div id="footnotes_div"> as <strong>.

  • Two CSS classes got renamed:
    • The class name "autoheaderlink" got renamed to "autoheader_anchor".
    • The class "footnoteRef" got renamed into "footnote_link".
    • You can savely ignore this unless you use your own CSS and have used them as a CSS selector yourself.

  • A couple of HTML elements get a class assigned automatically. See "Reserved names" in MarkAPL.html for details.
  • Access to documentation has changed:
    • The Help method now views the newly introduced "MarkAPL_CheatSheet.html".

    • The comprehensive document "MarkAPL.html" can be viewed with MarkAPL.Reference 0.

  • Bug fixes:
    • Special attributes on a link reference were ignored.
    • Link text on a simplified bookmark link was ignored.
    • Automatic external links went wrong under certain circumstances.
    • SubTopics had a problem with headers that start with a digit.

    • Warnings regarding non-genuine names of header links were buggy (=produced too often),

Version 2.4.0 from 2016-10-25

  • All headers now get an ID and an HREF assigned. That allows the user to make any header the first line by simply clicking at it.

Version 2.3.0 from 2016-10-20

  • New method Matrix2Markdown allows it to convert a matrix in the WS to Markdown.

Version 2.2.5 from 2016-10-18

  • Bug fix: under certain circumstances trailing blank of a paragraph that belonged to a list caused havoc.

Version 2.2.4 from 2016-10-08

  • ConvertMarkdownFile now accepts a non-empty inputFilename if it is identical with filename.

Version 2.2.3 from 2016-10-07

  • <http://aplwiki.com> was ignored when a line contained just that. Adding 4 leading spaces did not help.

  • When a TOC was inserted the resulting HTML was not valid.

Version 2.2.2 from 2016-10-05

  • Table-of-contents stopped working.
  • Special attributes on images within paragraphs did not work as expected.

Version 2.2.1 from 2016-10-03

  • Bug fix: ConvertMarkdownFile never created a fully-fledged HTML page.

Version 2.2.0 from 2016-10-01

  • New method ConvertMarkdownFile introduced.

  • Documentation improved.

Version 2.1.1 from 2016-09-21

  • Fix: \ in links to images are converted to / now.

Version 2.1.0 from 2016-09-20

  • Only with certain characters to the right is a backslash treated as an escape character from now on, otherwise it survives unchanged (smart escaping).
  • Bug fixes:
    • The initial content of a list item should not be embraced by a <p> tag according to the spec.

Version 2.0.3 from 2016-09-08

  • Mixing an image with special attributes and <<br>> did not work properly.

Version 2.0.2 from 2016-09-07

  • Any attempt to figure out where MarkAPL was loaded from failed when MarkAPL lived in an unnamed namespace (user command).

Version 2.0.1 from 2016-09-05

  • Non-indented code blocks within list items were handled incorrectly.

Version 2.0.0 from 2016-08-31

  • /!\ This version requires at least Dyalog 15.0 Unicode!

  • Platform independent: runs on Windows, Linux and Mac-OS.
  • All <li> elements are now always closed properly (</li>).

  • When just default parameters were passed to MakeHTML_Doc it crashed on cssUrl and homepath.

  • Two empty lines in a code block that belonged to an <li> item broke a list.

  • Documentation improved.

Version 1.8.4 from 2016-07-24

  • Bug fix: under certain circumstances "_" (italic) was not handled correctly in compound names.

Version 1.8.3 from 2016-07-15

  • Bug fix: tables with just table headers made MarkAPL crash.
  • Documentation improved.
  • Functions are not compiled anymore for the time being.

Version 1.8.2 from 2016-07-03

  • Both ** as well as * are now recognized as mark-up with names while __ and _ are not.

Version 1.8.1 from 2016-07-02

  • Recognizing embedded functions did not always work properly.
  • Documentation improved on what you can and what you can't do with an embedded function.

Version 1.8.0 from 2016-06-20

  • Definition lists improved. Note that this comes with a minor syntax change.

Version 1.7.9 from 2016-06-15

  • Something that is fenced between three ~ and three ` is not a code block.

  • Something that seems to be an attempt to define a special attribute but lacks something led to a crash in earlier versions. Now this becomes just data because that's what it might actually be.

Version 1.7.8 from 2016-06-15

  • When a nested list contained a code block then the type of a list further up the stack could be wrong.

Version 1.7.7 from 2016-06-14

  • Documentation fixed, enhanced and clarified.
  • Bug fixes
    • Lists assigned special attributes to the list items. This is wrong. Now any special attribute defined on the first item of a list is assigned to the <ul> or <ol> tag. Special attributes assigned to other list items are removed and ignored.

    • Definition lists ignored special attributes.

Version 1.7.6 from 2016-06-11

  • If a code block is part of a list item the number of leading blanks was calculated wrongly.
  • If you specify just "alt" for an image then "title" will show the same contents. The same holds true in case you specify just "title": "alt" will then become "title".
  • Code blocks within list items were handled incorrectly when nested deeply.

Version 1.7.5 from 2016-06-09

  • Code blocks that are part of a nested list item were not handled correctly when the nesting level is higher than 2.

Version 1.7.4 from 2016-06-06

  • 1.7.3 introduced a problem with documents that have a code block at the very end of the Markdown.
  • Code blocks now allow only up to a maximum of three leading whitespace characters. That brings MarkAPL in line with CommonMark

Version 1.7.3 from 2016-06-06

  • A leading in a code block made that line a Markdown comment.

  • Trailing white space on a [data] line led to that line being ignored.

Version 1.7.2 from 2016-06-02

  • New parameter homeFolder introduced.

  • New method CreateHelpParms introduced.

  • Documentation improved.

Version 1.7.1 from 2016-05-31

  • The anchors automatically wrapped around headers (bookmark links) get the class "autoheaderlink" assigned to them now.
  • Bug fixes:
    • &mldr; is not shown correctly by the WebBrowser ActiveX control, even not in "Edge" mode. MarkAPL now uses the alternative &hellip; which apparently works everywhere.

    • When a paragraph started with code but had a link at the end it was not marked up with <p>.

    • Recognizing HTML blocks improved.

Version 1.7.0 from 2016-05-17

  • Major change: the function Markdown2HTML now returns a two-item vector rather than just the HTML.

  • Definition of bookmarks corrected: in HTML5 bookmarks may start with a digit.
  • Documentation clarified regarding code blocks.
  • Bug fixes
    • Empty code blocks were handled incorrectly.
    • An embedded function that returned an empty vector caused MarkAPL to crash.

Version 1.6.2 from 2016-05-06

  • Minor bug fixes.

Version 1.6.1 from 2016-04-27

  • Bug fixes
    • There was a problem with the new 15.0-related system functions.
    • The lamp symbol () was not recognized when a line that is part of a paragraph started with it.

Version 1.6.0 from 2016-04-20

  • Definition lists implemented.
  • Bug fix: an asterisk on its own should be ignored when is comes to <strong>.

Version 1.5.0 from 2016-04-19

  • New parameter createFullHtmlPage introduced.

Version 1.4.4 from 2016-04-18

  • Structure of a header changed. The h-tag is now child of the anchor tag.
  • Bug fixes
    • Compiling TOC was buggy.
    • The rules for compiling a bookmark name were incomplete: remove HTML entities was missing.

Version 1.4.3 from 2016-04-12

  • Structure of a header changed. The h-tag is now child of the anchor tag.
  • Bug fixes:
    • Compiling TOC was buggy.
    • The rules for compiling a bookmark name were incomplete: remove HTML entities was missing.

Version 1.4.3 from 2016-04-12

  • Bug fixes
    • Images showed an ")" when no special attributes were defined.

Version 1.4.2 from 2016-04-11

  • Bug fixes
    • Numbered headers were wrong when the range feature was used.
    • MarkAPL crashed when there were no headers at all but numbering was on.

Version 1.4.1 from 2016-04-11

  • Plenty of bug fixes:
    • Special attributes on links did not always work.
    • In ordered lists sub-paragraphs were not always recognized correctly.
    • Links in a TOC were wrong when the link text started with a digit.
    • A code block in a list item with a \ at the end was handled incorrectly.

    • Complex bookmark links could go wrong.
    • SubTOCs crashed when header numbering was off.

Version 1.4.0 from 2016-04-08

  • List items can now contain not only paragraphs but also code blocks.
  • Performance improved.
  • ns.toc has an additional column 4 holding the type: 1 (for "ATX") or 2 (for SeText).

  • Documentation improved.
  • Test case added for a multi-line para with a special attributes.
  • Bug fixes:
    • In orderd lists items that were separated by blank lines were not recognized properly.
    • Escaped back-ticks were not handled correctly.

1.3.2 from 2016-03-24

  • Bug fixes:
    • ** was — wrongly — recognized only before and after words but not, for example, in **Notes:**.

    • Problem with escaped \* and \_ fixed.

1.3.1 from 2016-03-21

  • Important bug fixes:
    • Paragraphs in lists were handled wrongly under some circumstances.
    • Ordered as well as un-ordered lists were not always correctly identified.

1.3.0 from 2016-03-19

  • MarkAPL is now platform independent. However, for true platform indepence you need a proper version of APLTreeUtils as well.
  • The documentation regarding special attributes (ID and class names) was partly faulty.
  • Processing lists improved. Paragraphs can now drop back one or more levels by indentation.
  • "Loose" and "tight" lists removed.
  • Styling of the Markdown documentation improved, in partiuclar for print.
  • MarkAPL now attempts to compile all functions & operators.

  • Bug fixes:
    • Special attributes were correctly evaluated for images but not removed from the code.
    • When an embedded function returns an HTML block, no Markdown processing should take please. If it is not an HTML block then Markdown processing should take place.
    • Processing HTML blocks was buggy. HTML blocks **must** be surrounded by empty lines except <pre>, <script> and <style>.

1.2.1 from 2016-03-09

  • Paragraphs as well as list items can now have special attributes assigned.
  • Bug fixes:
    • Fenced code blocks came with two additional lines (top & bottom).

    • Handling of <pre> HTML blocks improved.

    • <<SubTopiC>> should have been truely case independent but was not.

    • Horizontal rulers weren't always recogized.

1.2.0 from 2016-03-03

  • Syntax introduced that allows embedded pieces of data (name-value pairs): [Data]:name=value

  • Documentation improved.
  • Test cases added.
  • Bug fixes:
    • Links in code within lists were wrongly converted into links.
    • Escaping { with \{ did not work.

    • Showing a back-tick within code did not always work as intended.
    • Single invalid internal link made MarkAPL crash. Several worked fine.
    • Help modified so that it can be used by Make.

1.1.1 from 2016-02-17

  • Two minor bug fixes.

MarkAPL/ProjectPage (last edited 2017-09-15 19:56:29 by KaiJaeger)