Text reflow woes (or: I want bullets back!)y
Sean Conner
sean at conman.org
Sat Jan 18 02:16:27 GMT 2020
It was thus said that the Great solderpunk once stated:
>
> Feedback on the below very welcome!
Red alert! Raise shields! Strap in! This is going to be a bumpy ride.
Attached is a sample document that I created that I'm trying to format per
the spec below. I'm already running into trouble, else I would have not
replied with this particular response.
> The text/gemini syntax is inspired by and looks visually similar to
> Markdown, but it is significantly simpler (and consequently less
> powerful). The syntax is strictly line-based: a file can be processed
> one line at a time and each line can be handled in a way which does
> not depend upon any previous or subsequent lines. The only internal
> state a rendering engine needs to maintain is a single boolean
> variable (for preformatting mode, described below).
>
> The lines of a text/gemini file come in 8 different types.
I only see 7 listed below.
> It is
> possible to unambiguously determine the type of a line by only
> considering its first three characters. Knowing a line's type is the
> only information necessary to know how to handle it correctly.
Not quite true, even according to this document. Leading white space in
lists is the glaring exception here.
> Just like Gemini's status code system is designed so that simple
> clients can ignore the second digit of the code and still function
> correctly, the text/gemini syntax is designed so that simple clients
> can treat several different types of line identically and still
> provide a usable representation of the document. A bare-minimum
> client need only recognise four different types of line. These are:
Yet seven are listed.
> 1. PREFORMATTED TOGGLE LINES
>
> Lines consisting of only and exactly three back ticks (```) are
> preformatted toggle lines. These lines should not be displayed to the
> user and are instead used to toggle preformatted mode on and off (the
> mode is off when the parser is intialised). When preformatted mode is
> on, the usual rules for identifying line types are suspended and all
> lines should be unconditionally identified as PREFORMATTED TEXT LINES.
>
> 2. PREFORMATTED TEXT LINES
>
> Preformatted text lines should be presented to the user in a monowidth
> font exactly as they appear in the text/gemini file. Lines longer
> than the client's viewport must not be wrapped, leading or trailing
> whitespace must not be removed, etc. Handling of lines longer than the
> viewport is client-specific. Advanced clients may display a
> horizontal scrollbar. Simple clients may simply truncate the line.
No real problems so far.
> 3. LINK LINES
>
> Lines beginning with the two characters => are link lines. We all know
> how these work by now.
Again, no real problem.
> 4. TEXT LINES
>
> All other lines are TEXT LINES. They should be presented to the user
> in a client-specific "pleasing manner". Lines longer than the
> client's viewport should be wrapped into multiple lines of a suitable
> length. Variable width fonts may be used. Blank lines are a special
> case of TEXT LINES and should be reproduced in the output.
>
> It is important to realise that while Markdown, HTML, LaTeX and many
> other document markup formats are "block based" or "paragraph based",
> the text/gemini format is not. Consecutive, non-blank lines of text
> which are much shorter than the client's viewport should *not* be
> combined into longer lines. Equivalently, *every* newline character
> in a text/gemini file is significant, not only consecutive pairs of
> newline characters. Clients ignoring this fact will produce incorrect
> output.
Fair enough. And so far, things are okay.
> Advanced clients may also recognise the following additional line
> types. Simple clients may treat all line types below as TEXT LINES
> with no loss of essential function.
It's here we start running into trouble.
> 5. HEADING LINES
>
> Lines beginning with one, two or three consecutive # characters are
> HEADING LINES, corresponding to headings, subheadings or susubheadings
> respectively. The text following the # characters (with leading
> whitespace removed)
The parenthetical here is ambiguous. Does it refer to this issue?
#A title
## A title with space between the '#' and text
### Even more white space
or
#A title
##A title with leading space before the '#'
###Even more white space
I'm thinking the former now that I'm replying, but my code deals with both
cases combined, so I can handle:
# A title
## A title with spaces
### Yippee! Spaces galore!
Almost---tabs (and yes, I do use tabs---I like me the tabs) are an issue
and while I can handle them (I have code that will expand them up to 8
spaces) not everybody has code to deal with this. So question:
WHAT ABOUT TABS?
They WILL show up.
> constitute the heading and should be displayed to
> the user. Clients MAY choose to apply special styling to headings to
> distinguish them from ordinary lines. However, the primary purpose of
> HEADING LINES is to represent the internal structure of the document
> in a machine-readable way. Advanced clients can use this information
> to, e.g. display a hierarchically formatted "table of contents" for a
> long document in a side-pane, allowing users to easily jump to
> specific sections without excessive scrolling. Or CMS-style tools
> automatically generating menus or Atom/RSS feeds for a directory of
> text/gemini files can use the first heading in a file as a
> human-friendly label for links to it.
So another question. I have some headings like this:
### Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sodales eget nisi quis condimentum. Donec ipsum arcu, fermentum eu ullamcorper sit amet, facilisis id nunc. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Nam tempus nulla ut dolor luctus malesuada. Suspendisse orci sem, semper at maximus non, pharetra et justo. Quisque lectus arcu, viverra ac convallis eu, vulputate ut enim. Nulla aliquam, lacus consequat suscipit facilisis, nisl tortor facilisis nisi, vel mattis eros arcu sed tellus. Duis quis lectus pellentesque, posuere dolor ut, sodales massa. Proin vel blandit mauris.
Given a screen width of 40, which of the four below should be displayed?
### Lorem ipsum dolor sit amet, consect
### Lorem ipsum dolor sit amet, cons...
### Lorem ipsum dolor sit amet,
### consectetur adipiscing elit. Cras
### sodales eget nisi quis condimentum.
### Donec ipsum arcu, fermentum eu
### ullamcorper sit amet, facilisis id
### nunc. Class aptent taciti sociosqu
### ad litora torquent per conubia
### nostra, per inceptos himenaeos. Nam
### tempus nulla ut dolor luctus
### malesuada. Suspendisse orci sem,
### semper at maximus non, pharetra et
### justo. Quisque lectus arcu, viverra
### ac convallis eu, vulputate ut enim.
### Nulla aliquam, lacus consequat
### suscipit facilisis, nisl tortor
### facilisis nisi, vel mattis eros
### arcu sed tellus. Duis quis lectus
### pellentesque, posuere dolor ut,
### sodales massa. Proin vel blandit
### mauris.
### Lorem ipsum dolor sit amet,
consectetur adipiscing elit. Cras
sodales eget nisi quis condimentum.
Donec ipsum arcu, fermentum eu
ullamcorper sit amet, facilisis id
nunc. Class aptent taciti sociosqu
ad litora torquent per conubia
nostra, per inceptos himenaeos. Nam
tempus nulla ut dolor luctus
malesuada. Suspendisse orci sem,
semper at maximus non, pharetra et
justo. Quisque lectus arcu, viverra
ac convallis eu, vulputate ut enim.
Nulla aliquam, lacus consequat
suscipit facilisis, nisl tortor
facilisis nisi, vel mattis eros
arcu sed tellus. Duis quis lectus
pellentesque, posuere dolor ut,
sodales massa. Proin vel blandit
mauris.
### Lorem ipsum dolor sit amet,
consectetur adipiscing elit. Cras
sodales eget nisi quis condimentum.
Donec ipsum arcu, fermentum eu
ullamcorper sit amet, facilisis id
nunc. Class aptent taciti sociosqu ad
litora torquent per conubia nostra, per
inceptos himenaeos. Nam tempus nulla ut
dolor luctus malesuada. Suspendisse
orci sem, semper at maximus non,
pharetra et justo. Quisque lectus arcu,
viverra ac convallis eu, vulputate ut
enim. Nulla aliquam, lacus consequat
suscipit facilisis, nisl tortor
facilisis nisi, vel mattis eros arcu
sed tellus. Duis quis lectus
pellentesque, posuere dolor ut, sodales
massa. Proin vel blandit mauris.
Or is this way into the "you have *got* to be kidding!" territory? I
swear, I'm not trying to take these things to the extreme ... well, okay, I
*am* trying to take these things to the exteme, but only to find out where
the borders are.
> 6. UNORDERED LIST ITEMS
>
> Lines beginning with a * are UNORDERED LIST ITEMS. This line type
> exists purely for stylistic reasons. The * may be replaced in
> advanced clients by a bullet symbol. Any text after the * character
> should be presented to the user as if it were a TEXT LINE, i.e.
> wrapped to fit the viewport. Advanced clients can take the space of
> the bullet symbol into account when performing wrapping and ensure
> that all lines of text corresponding to the item are aligned with one
> another.
Okay, several questions here. First off, replace the '###' with '*' in
the above example---how to properly format a list item that is ridiculously
long.
Second question---this list:
* lorem
* ipsum
* dolor
* Fusce faucibus ... (I'll save you the text)
* Nunc pharetra ...
* consectetur
* adipiscing
* elit
* Cras
* sodales
* eget
* nisi
This is a nested list, so the lines start with a blank line. This list
indents one space, but it could be two spaces per index, three, eight.
Also, this list:
* lorem
* ipsum
* dolor
* Fusce faucibus ...
* Nunc pharetra ...
* consectetur
* adipiscing
* elit
* Cras
* sodales
* eget
* nisi
Uses tabs (ah, lovely tabs). Are indents preserved? Transformed? What
if there's mixed spaces and tabs (one line is a tab and two space, another
line is 10 spaces---with a default tab stop of 8, they both line up)?
> 7. ORDERED LIST ITEMS
>
> As above with obvious changes.
Not so fast there! Again, the same issues as above, but now here are some
ordered lists that are obvious *to me* but maybe not to others:
1 lorem
1 ipsum
1 dolor
1 Fusce faucibus ...
2 Nunc pharetra ...
2 consectetur
3 adipiscing
4 elit
2 Cras
3 sodales
2 eget
3 nisi
The following is how I learned outlining in school:
1 lorem
A ipsum
i dolor
a Fusce faucibus ...
b Nunc pharetra ...
ii consectetur
iii adipiscing
iv elit
B Cras
C sodales
2 eget
3 nisi
And in case you don't want to support Roman numerals:
1 lorem
A ipsum
1 dolor
A Fusce faucibus ...
B Nunc pharetra ...
2 consectetur
3 adipiscing
4 elit
B Cras
C sodales
2 eget
3 nisi
And again, all the same questions apply from unordered lists.
That's it for now. I'm going to hold off on my implementation until some
of this is cleared up, but please do check out the attached document as a
warning of what might be possible with this format.
-spc (Will torture specs for food ...)
-------------- next part --------------
# Sample Gemini Text File
## Very long lines, blank lines between them
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sodales eget nisi quis condimentum. Donec ipsum arcu, fermentum eu ullamcorper sit amet, facilisis id nunc. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Nam tempus nulla ut dolor luctus malesuada. Suspendisse orci sem, semper at maximus non, pharetra et justo. Quisque lectus arcu, viverra ac convallis eu, vulputate ut enim. Nulla aliquam, lacus consequat suscipit facilisis, nisl tortor facilisis nisi, vel mattis eros arcu sed tellus. Duis quis lectus pellentesque, posuere dolor ut, sodales massa. Proin vel blandit mauris.
Aenean vehicula eu eros vel feugiat. Quisque sagittis metus eu nisl dapibus condimentum. Aenean ipsum justo, sagittis vel ipsum sit amet, fermentum convallis elit. Ut congue scelerisque velit, nec euismod nulla gravida quis. Duis faucibus tempus ligula, non malesuada neque lobortis quis. Nam neque magna, ornare eu dui ut, porttitor tincidunt purus. Duis id malesuada ante. Suspendisse gravida condimentum nisl, eget gravida dui pellentesque et.
Fusce tempor leo nulla, non posuere sem maximus eget. Integer non maximus quam. Nam ac felis ut elit aliquam aliquam. Curabitur laoreet metus nulla, a ornare lorem molestie a. Sed id libero vel nunc lobortis lacinia sed quis metus. Sed feugiat eget ipsum et commodo. Fusce condimentum est ut arcu imperdiet, vel porta felis tincidunt. Aliquam quis molestie libero, sit amet luctus quam. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse potenti. Integer quis eros neque. Sed vulputate condimentum est et cursus. Nunc urna ante, euismod quis tempus ac, aliquam at felis. Sed hendrerit ex eu odio sodales fermentum.
Fusce faucibus dui et consectetur aliquet. Nullam augue magna, bibendum sit amet commodo at, sagittis non leo. Sed eget mauris eget arcu vulputate vulputate. Morbi non gravida dolor, in mollis turpis. Ut quis tempor elit. Aenean nec arcu vitae justo gravida placerat. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam vel suscipit nisi. Curabitur vitae elit ultricies, ultrices dolor sed, vehicula augue. Phasellus euismod ligula sit amet mi volutpat tempor. Nunc scelerisque mauris dui, sed placerat nibh tempus non. Mauris eleifend purus nec tincidunt dapibus. Maecenas tincidunt volutpat varius. Phasellus eu congue risus. Nam venenatis erat non auctor ullamcorper.
Nunc pharetra sem nec velit tempus, sed malesuada felis accumsan. Vestibulum egestas ex nisl, sit amet rhoncus mauris laoreet at. Ut neque lorem, tempus et dictum non, laoreet ac mauris. Maecenas consectetur blandit neque eget maximus. Duis tincidunt elementum lorem, at varius nisl dapibus vel. In blandit ipsum sed molestie commodo. Quisque aliquet nunc eget pretium viverra. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Morbi ligula nisi, sollicitudin tincidunt efficitur nec, lobortis eu diam. Vestibulum convallis erat velit, semper semper augue sodales in.
## Very long lines, one after the other
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sodales eget nisi quis condimentum. Donec ipsum arcu, fermentum eu ullamcorper sit amet, facilisis id nunc. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Nam tempus nulla ut dolor luctus malesuada. Suspendisse orci sem, semper at maximus non, pharetra et justo. Quisque lectus arcu, viverra ac convallis eu, vulputate ut enim. Nulla aliquam, lacus consequat suscipit facilisis, nisl tortor facilisis nisi, vel mattis eros arcu sed tellus. Duis quis lectus pellentesque, posuere dolor ut, sodales massa. Proin vel blandit mauris.
Aenean vehicula eu eros vel feugiat. Quisque sagittis metus eu nisl dapibus condimentum. Aenean ipsum justo, sagittis vel ipsum sit amet, fermentum convallis elit. Ut congue scelerisque velit, nec euismod nulla gravida quis. Duis faucibus tempus ligula, non malesuada neque lobortis quis. Nam neque magna, ornare eu dui ut, porttitor tincidunt purus. Duis id malesuada ante. Suspendisse gravida condimentum nisl, eget gravida dui pellentesque et.
Fusce tempor leo nulla, non posuere sem maximus eget. Integer non maximus quam. Nam ac felis ut elit aliquam aliquam. Curabitur laoreet metus nulla, a ornare lorem molestie a. Sed id libero vel nunc lobortis lacinia sed quis metus. Sed feugiat eget ipsum et commodo. Fusce condimentum est ut arcu imperdiet, vel porta felis tincidunt. Aliquam quis molestie libero, sit amet luctus quam. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse potenti. Integer quis eros neque. Sed vulputate condimentum est et cursus. Nunc urna ante, euismod quis tempus ac, aliquam at felis. Sed hendrerit ex eu odio sodales fermentum.
Fusce faucibus dui et consectetur aliquet. Nullam augue magna, bibendum sit amet commodo at, sagittis non leo. Sed eget mauris eget arcu vulputate vulputate. Morbi non gravida dolor, in mollis turpis. Ut quis tempor elit. Aenean nec arcu vitae justo gravida placerat. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam vel suscipit nisi. Curabitur vitae elit ultricies, ultrices dolor sed, vehicula augue. Phasellus euismod ligula sit amet mi volutpat tempor. Nunc scelerisque mauris dui, sed placerat nibh tempus non. Mauris eleifend purus nec tincidunt dapibus. Maecenas tincidunt volutpat varius. Phasellus eu congue risus. Nam venenatis erat non auctor ullamcorper.
Nunc pharetra sem nec velit tempus, sed malesuada felis accumsan. Vestibulum egestas ex nisl, sit amet rhoncus mauris laoreet at. Ut neque lorem, tempus et dictum non, laoreet ac mauris. Maecenas consectetur blandit neque eget maximus. Duis tincidunt elementum lorem, at varius nisl dapibus vel. In blandit ipsum sed molestie commodo. Quisque aliquet nunc eget pretium viverra. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Morbi ligula nisi, sollicitudin tincidunt efficitur nec, lobortis eu diam. Vestibulum convallis erat velit, semper semper augue sodales in.
## Very short lines (how I tend to blog)
Lorem ipsum dolor sit amet,
consectetur adipiscing elit.
Cras sodales eget nisi quis condimentum.
Donec ipsum arcu,
fermentum eu ullamcorper sit amet,
facilisis id nunc.
Class aptent taciti sociosqu ad litora torquent per conubia nostra,
per inceptos himenaeos.
Nam tempus nulla ut dolor luctus malesuada.
Suspendisse orci sem,
semper at maximus non,
pharetra et justo.
Quisque lectus arcu,
viverra ac convallis eu,
vulputate ut enim.
Nulla aliquam,
lacus consequat suscipit facilisis,
nisl tortor facilisis nisi,
vel mattis eros arcu sed tellus.
Duis quis lectus pellentesque,
posuere dolor ut,
sodales massa.
Proin vel blandit mauris.
## Links
=> gemini://example.net/ Lorem ipsum dolor sit amet
=> gemini://example.net/ Class aptent taciti sociosqu ad litora torquent per conubia nostra
=> gemini://example.net/ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sodales eget nisi quis condimentum. Donec ipsum arcu, fermentum eu ullamcorper sit amet, facilisis id nunc. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Nam tempus nulla ut dolor luctus malesuada. Suspendisse orci sem, semper at maximus non, pharetra et justo. Quisque lectus arcu, viverra ac convallis eu, vulputate ut enim. Nulla aliquam, lacus consequat suscipit facilisis, nisl tortor facilisis nisi, vel mattis eros arcu sed tellus. Duis quis lectus pellentesque, posuere dolor ut, sodales massa. Proin vel blandit mauris.
=> gemini://example.net/
=> gemini://example.net/lorem/ipsum/dolor/sit/amet/consectetur/adipiscing/elit/cras/sodales/eget/nisi/quis/condimentum/donec/ipsum/arcu/fermentum/eu/ullamcorper/sit/amet/facilisis/id/nunc/class/aptent/taciti/sociosqu/ad/litora/torquent/per/conubia/nostra/per/inceptos/himenaeos/nam/tempus/nulla/ut/dolor/luctus/
## Preformatted Text Lines
```
quis x1 = facilisis "lpeg"
quis x2 = "..."
quis x3 = x1.x4(x1.x5("AZ","az")^1)
+ (x1.x6(1) - x1.x5("AZ","ax"))^1
quis x7 = x1.x8(x3^1)
quis x9 = x7:lobortis(x2)
quis x10 = 1
-- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sodales
-- eget nisi quis condimentum. Donec ipsum arcu, fermentum eu ullamcorper
-- sit amet, facilisis id nunc. Class aptent taciti sociosqu ad litora
-- torquent per conubia nostra, per inceptos himenaeos. Nam tempus nulla ut
-- dolor luctus malesuada. Suspendisse orci sem, semper at maximus non,
-- pharetra et justo. Quisque lectus arcu, viverra ac convallis eu,
-- vulputate ut enim. Nulla aliquam, lacus consequat suscipit facilisis,
-- nisl tortor facilisis nisi, vel mattis eros arcu sed tellus. Duis quis
-- lectus pellentesque, posuere dolor ut, sodales massa. Proin vel blandit
-- mauris.
elit x11 nisi sed.liguia() dolor
eget x11 ~= "" eu
sed.aliquam:nunc(lectus.amet(' [%q]=%q,\n',x11,x9[i]:lobortis()))
x10 = x10 + 1
sit
sed.aliquam:nunc(x11,'\n')
consectetur
consectetur
```
## Lists
### Bullet List 1
* lorem
* ipsum
* dolor
* Fusce faucibus dui et consectetur aliquet. Nullam augue magna, bibendum sit amet commodo at, sagittis non leo. Sed eget mauris eget arcu vulputate vulputate. Morbi non gravida dolor, in mollis turpis. Ut quis tempor elit. Aenean nec arcu vitae justo gravida placerat. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam vel suscipit nisi. Curabitur vitae elit ultricies, ultrices dolor sed, vehicula augue. Phasellus euismod ligula sit amet mi volutpat tempor. Nunc scelerisque mauris dui, sed placerat nibh tempus non. Mauris eleifend purus nec tincidunt dapibus. Maecenas tincidunt volutpat varius. Phasellus eu congue risus. Nam venenatis erat non auctor ullamcorper.
* Nunc pharetra sem nec velit tempus, sed malesuada felis accumsan. Vestibulum egestas ex nisl, sit amet rhoncus mauris laoreet at. Ut neque lorem, tempus et dictum non, laoreet ac mauris. Maecenas consectetur blandit neque eget maximus. Duis tincidunt elementum lorem, at varius nisl dapibus vel. In blandit ipsum sed molestie commodo. Quisque aliquet nunc eget pretium viverra. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Morbi ligula nisi, sollicitudin tincidunt efficitur nec, lobortis eu diam. Vestibulum convallis erat velit, semper semper augue sodales in.
* consectetur
* adipiscing
* elit
* Cras
* sodales
* eget
* nisi
### Bullet List 2
* lorem
* ipsum
* dolor
* Fusce faucibus dui et consectetur aliquet. Nullam augue magna, bibendum sit amet commodo at, sagittis non leo. Sed eget mauris eget arcu vulputate vulputate. Morbi non gravida dolor, in mollis turpis. Ut quis tempor elit. Aenean nec arcu vitae justo gravida placerat. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam vel suscipit nisi. Curabitur vitae elit ultricies, ultrices dolor sed, vehicula augue. Phasellus euismod ligula sit amet mi volutpat tempor. Nunc scelerisque mauris dui, sed placerat nibh tempus non. Mauris eleifend purus nec tincidunt dapibus. Maecenas tincidunt volutpat varius. Phasellus eu congue risus. Nam venenatis erat non auctor ullamcorper.
* Nunc pharetra sem nec velit tempus, sed malesuada felis accumsan. Vestibulum egestas ex nisl, sit amet rhoncus mauris laoreet at. Ut neque lorem, tempus et dictum non, laoreet ac mauris. Maecenas consectetur blandit neque eget maximus. Duis tincidunt elementum lorem, at varius nisl dapibus vel. In blandit ipsum sed molestie commodo. Quisque aliquet nunc eget pretium viverra. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Morbi ligula nisi, sollicitudin tincidunt efficitur nec, lobortis eu diam. Vestibulum convallis erat velit, semper semper augue sodales in.
* consectetur
* adipiscing
* elit
* Cras
* sodales
* eget
* nisi
### Ordered List 1
1 lorem
1 ipsum
1 dolor
1 Fusce faucibus dui et consectetur aliquet. Nullam augue magna, bibendum sit amet commodo at, sagittis non leo. Sed eget mauris eget arcu vulputate vulputate. Morbi non gravida dolor, in mollis turpis. Ut quis tempor elit. Aenean nec arcu vitae justo gravida placerat. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam vel suscipit nisi. Curabitur vitae elit ultricies, ultrices dolor sed, vehicula augue. Phasellus euismod ligula sit amet mi volutpat tempor. Nunc scelerisque mauris dui, sed placerat nibh tempus non. Mauris eleifend purus nec tincidunt dapibus. Maecenas tincidunt volutpat varius. Phasellus eu congue risus. Nam venenatis erat non auctor ullamcorper.
2 Nunc pharetra sem nec velit tempus, sed malesuada felis accumsan. Vestibulum egestas ex nisl, sit amet rhoncus mauris laoreet at. Ut neque lorem, tempus et dictum non, laoreet ac mauris. Maecenas consectetur blandit neque eget maximus. Duis tincidunt elementum lorem, at varius nisl dapibus vel. In blandit ipsum sed molestie commodo. Quisque aliquet nunc eget pretium viverra. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Morbi ligula nisi, sollicitudin tincidunt efficitur nec, lobortis eu diam. Vestibulum convallis erat velit, semper semper augue sodales in.
2 consectetur
3 adipiscing
4 elit
2 Cras
3 sodales
2 eget
3 nisi
### Ordered List 2
1 lorem
A ipsum
i dolor
a Fusce faucibus dui et consectetur aliquet. Nullam augue magna, bibendum sit amet commodo at, sagittis non leo. Sed eget mauris eget arcu vulputate vulputate. Morbi non gravida dolor, in mollis turpis. Ut quis tempor elit. Aenean nec arcu vitae justo gravida placerat. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam vel suscipit nisi. Curabitur vitae elit ultricies, ultrices dolor sed, vehicula augue. Phasellus euismod ligula sit amet mi volutpat tempor. Nunc scelerisque mauris dui, sed placerat nibh tempus non. Mauris eleifend purus nec tincidunt dapibus. Maecenas tincidunt volutpat varius. Phasellus eu congue risus. Nam venenatis erat non auctor ullamcorper.
b Nunc pharetra sem nec velit tempus, sed malesuada felis accumsan. Vestibulum egestas ex nisl, sit amet rhoncus mauris laoreet at. Ut neque lorem, tempus et dictum non, laoreet ac mauris. Maecenas consectetur blandit neque eget maximus. Duis tincidunt elementum lorem, at varius nisl dapibus vel. In blandit ipsum sed molestie commodo. Quisque aliquet nunc eget pretium viverra. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Morbi ligula nisi, sollicitudin tincidunt efficitur nec, lobortis eu diam. Vestibulum convallis erat velit, semper semper augue sodales in.
ii consectetur
iii adipiscing
iv elit
B Cras
C sodales
2 eget
3 nisi
### Ordered List 3
1 lorem
A ipsum
1 dolor
A Fusce faucibus dui et consectetur aliquet. Nullam augue magna, bibendum sit amet commodo at, sagittis non leo. Sed eget mauris eget arcu vulputate vulputate. Morbi non gravida dolor, in mollis turpis. Ut quis tempor elit. Aenean nec arcu vitae justo gravida placerat. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam vel suscipit nisi. Curabitur vitae elit ultricies, ultrices dolor sed, vehicula augue. Phasellus euismod ligula sit amet mi volutpat tempor. Nunc scelerisque mauris dui, sed placerat nibh tempus non. Mauris eleifend purus nec tincidunt dapibus. Maecenas tincidunt volutpat varius. Phasellus eu congue risus. Nam venenatis erat non auctor ullamcorper.
B Nunc pharetra sem nec velit tempus, sed malesuada felis accumsan. Vestibulum egestas ex nisl, sit amet rhoncus mauris laoreet at. Ut neque lorem, tempus et dictum non, laoreet ac mauris. Maecenas consectetur blandit neque eget maximus. Duis tincidunt elementum lorem, at varius nisl dapibus vel. In blandit ipsum sed molestie commodo. Quisque aliquet nunc eget pretium viverra. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Morbi ligula nisi, sollicitudin tincidunt efficitur nec, lobortis eu diam. Vestibulum convallis erat velit, semper semper augue sodales in.
2 consectetur
3 adipiscing
4 elit
B Cras
C sodales
2 eget
3 nisi
## Long Titles
### Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sodales eget nisi quis condimentum. Donec ipsum arcu, fermentum eu ullamcorper sit amet, facilisis id nunc. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Nam tempus nulla ut dolor luctus malesuada. Suspendisse orci sem, semper at maximus non, pharetra et justo. Quisque lectus arcu, viverra ac convallis eu, vulputate ut enim. Nulla aliquam, lacus consequat suscipit facilisis, nisl tortor facilisis nisi, vel mattis eros arcu sed tellus. Duis quis lectus pellentesque, posuere dolor ut, sodales massa. Proin vel blandit mauris.
### Aenean vehicula eu eros vel feugiat. Quisque sagittis metus eu nisl dapibus condimentum. Aenean ipsum justo, sagittis vel ipsum sit amet, fermentum convallis elit. Ut congue scelerisque velit, nec euismod nulla gravida quis. Duis faucibus tempus ligula, non malesuada neque lobortis quis. Nam neque magna, ornare eu dui ut, porttitor tincidunt purus. Duis id malesuada ante. Suspendisse gravida condimentum nisl, eget gravida dui pellentesque et.
And this should provide for some long discussions. I hope.
More information about the Gemini
mailing list