that prints the `<img src="link"` and `<a href="link"`)
out into its own subroutine so I don't have to duplicate
the mass of code that handles callback and the url base
prefixes.
Add 1 feature; allow the user to specify only the width
or height of an image by the simple expedient of leaving
a number off the =WxH parameter.
Fix 2 table bugs: first, don't treat a single line with
pipes as a table, and secondly don't silently delete
tables that are just the header lines.
construct like `<foo [bar](foo) <s>hi</s>` will result in everything
between the first < and the next > being passed through untouched.
It's pretty gross, but It's The Standard(tm).
to deal with the stupid FSF compiler, which has ArCaNe KnOwLeDgE about bzero
and memset and will fall over and die if you don't provide arguments for
the functions even if you don't #include <string.h> (or whatever include
file has the prototype)
caused `splat()` to end up picking up uninitialized
data from the `align` string, which resulted in core
dumps when that data was used to figure out which
alignment to use.
code handler, I forgot to revisit the table of contents code, and
this made it break. I also added a test case to check that the
table of contents is actually being generated.
that when processing Lines in compile_document().
2. Add some test cases for [footnote] links showing up in
random places.
3. In `dumptree()`, show the `ident` string ,if any, associated
with a given block.
`compile()` out into `compile_document()` (toplevel; split documents
into html, style, sourcecode, extracts all footnotes) and `compile()`
(compiles all content, but does not process html blocks or footnotes)
Not perfect: I should not need the SOURCE object type -- I should be
able to simple compile a block of source and append that source onto
the top-level paragraph list, but when I do that I end up with memory
leaks and test failures.
2. Tweak the paragraph wrapping in `generate()` so that all
paragraphs in a multiple-paragraph item/blockquote will
be properly wrapped with `<p>`...`</p>` (or whatever is
appropriate.)
3. Attempt to follow indentation better inside lists, so
a list item with multiple paragraphs is parsed correctly
when the second (& up) paragraphs are indented the same
as the first paragraph.
trigger on c & 0xC0, then loop on utf-8 stanzas until we hit
something else, but keep track of width and stop printing if
we run out of space in the middle of a string of > U+007F
characters.
exist on plan9) and `grep` (with appropriate backslashing) instead
of `fgrep` (`fgrep` doesn't exist on plan9) or `grep -F` (`-F` option
doesn't exist on plan9?)
2. move the source for `echo` and `cols` into the new `tools` directory.
link is a mail address, then tuck that logic into a separate
function. Also make a (failed) stab at the horrible syntax
for `[links](with'comment-like urls)`
is for `<`automatic links`>`, the new function `maybe_autolink()` is
for reddit-style inline autolinks, and the new function
`process_possible_link()` handles the formatting of the token picked
up by `maybe_tag_or_link()` or `maybe_autolink()`.
2. Fix a bug in `ishdr()` so that it won't pick up a line containing
a single `#` and emit it as a `<h0>`.
3. Modify the behavior of backslash escaping in `parenthetical()` so
that all punctuation can be escaped.
monster bodge. It's no shorter, but it's a little bit clearer, I
hope, and now I can revisit it and rework the whole link name gathering
scheme if need be.
The bug fixes (bugs reported by Mike Schiraldi @ reddit) are
1. If -fautolink is turned on, a naked @ becomes a mailto:
link. Fixed by only triggering `maybe_tag_or_link()` on
alphabetic characters.
2. If -fnohtml is set, forced linebreaks become <br/>.
Fixed by filtering out nonprinting nonwhitespace characters
on the input and using ^C as the <br/> generator character
instead of converting the forced linebreak directly to <br/>.
3. inline links (via []()) don't allow spaces or escaped ) characters.
Fixed by rewriting `linkyurl()` so it builds a new `Cstring` for
link.link (which needs to be deleted after use, so I added a new
`deallocate` field to the bookmark record for `linkylinky` to use,)
changing the link gobbler to absorb input until a terminator instead
of until whitespace or a terminator) and allowing \ to escape ), =,
or ".
4. Change `Qchar` to take an integer instead of a char.
The feature enhancement is the `abbr:` pseudo-protocol, which I had not
implemented because it collided with the old 'eat until whitespace' version
of `linkyurl()`
1. "autolinks" -- expand unbracketed urls into links
(flag MKD_AUTOLINK, -fautolink in the markdown program)
2. "safe links" -- don't linkify footnotes where the link protocol
isn't a well-known protocol (currently http: https:,ftp:,news:)
(flag MKD_SAFELINK, -fsafelink in the markdown program)