It's impossible to get that correct unless you know what the user has set his tab settings to (like :set tabstop in Vim; or Tab Size setting in TextMate). There's no good default: both 8 and 4 are equally good candidates, and other values are allowed too. So I chose to go around it.
The 99% scenario is that the user is either using tabs for tabs or spaces for tabs in his editor/s and not mixing the two up. Mixing spaces and tabs is not a good practice in any piece of writing, so I think it's okay to not optimize for that scenario. Hence, the vfmd syntax guide only says "[The list marker character] must be followed by one or more spaces", and avoids mentioning tabs altogether. (The original Markdown syntax guide says: "List markers must be followed by one or more spaces or a tab.") Again, for code blocks, the syntax guide says the indentation should be 4 spaces or 1 tab, which should do fine for anyone. So to summarize: - It's not possible to solve this correctly without giving the tabstop number as an input to the parser - We don't want to get the tabstop as input, therefore we need a way around it - If the user is not mixing tabs and spaces, he should be fine - If the user is mixing tabs and spaces, but has read the syntax guide and follows it, he should be fine - If the user hasn't read the syntax and is also mixing spaces and tabs, sorry, I'm afraid I'm unable to help him roop. On Fri, Sep 27, 2013 at 8:06 PM, Michel Fortin <[email protected]>wrote: > Le 27-sept.-2013 à 9:04, Roopesh Chander <[email protected]> a écrit : > > > Because this is how the syntax is defined (which is not hard or > unintuitive > > to follow for a user), there's no need to worry about a TAB character > being > > interpreted as 1-4 spaces based on it's position. If the user inserted a > > TAB immediately after the bullet character, he is expected to do that for > > all the list items anyway. > > > > *\tlist 1 item 1 > > * list 1 item 2 > > > > The above too shall be interpreted as two lists. > > Ok, but what about this: > > *\tlist 1 item 1 > * list 1 item 2 > > They will both look unaligned in your editor (unless you set your editor > to 5 spaces per tab (who does this?)), but they'll be in same list because > because you're interpreting spaces differently from the editor. > > And what about this: > > *\titem 1 paragraph 1 > > \titem 1 paragraph 2 > > Also, what happens within code blocks? (I haven't checked your algorithm > for code blocks, but if you change tabs to four spaces you're going to get > strange results for any code block with tabs in them not a the beginning of > the line.) > > -- > Michel Fortin > [email protected] > http://michelf.ca > > _______________________________________________ > Markdown-Discuss mailing list > [email protected] > http://six.pairlist.net/mailman/listinfo/markdown-discuss >
_______________________________________________ Markdown-Discuss mailing list [email protected] http://six.pairlist.net/mailman/listinfo/markdown-discuss
