careteditor / issues

Caret issues
https://caret.io
325 stars 12 forks source link

Disabling heading cues #372

Closed matchatype closed 7 years ago

matchatype commented 7 years ago

Sorry about the title, I'm pretty sure the name is wrong. I mean the way headings are now displayed in Caret, which is neither the final rendering nor WYSIWYG. It's just huge characters written with some discretionary type. I'd like to be able to disable that:

Please, if not remove it, at least let me disable it, as all my documents are mostly unreadable to me and I had to switch to a different editor.

erusev commented 7 years ago

Ok, we'll see what we can do.

alinnert commented 7 years ago

it defeats the very basic principle of using semantic markup to render a structured document.

I can't agree here. The markdown you write is basically (some kind of) code. But that doesn't mean it mustn't look nice. It heavily depends on how you use Caret and what you expect from it. If you write a novel I can imagine it's actually nicer to have a proportional font like this - for heading and body. There it also doesn't matter if it represents the final product, since maybe you use InDesign or something similar anyway. Or maybe you just take notes. Personally, I don't think it's that bad. But again it depends on expectations.

But I do agree that there needs to be a setting for the font and also the font size.

Here's a suggestion from my side (with some random example values):

page_width: 70 # previously 'lineWidth'
page_lineHeight: 1.6 # [1]
body_font: Calibri
body_fontSize: 20
heading_font: Cambria
heading_fontSize: 28 # [2]
code_font: Consolas # [3]
code_fontSize: 20

I'm using the underscore to separate setting type from the individual setting. Maybe - since it's YAML - it could also be done like this:

page:
  width: 70
  lineHeight: 1.6
body:
  font: Calibri
  fontSize: 20
# ...

A setting for heading_fontWeight btw. would be a nice extra I think.


But I also want to leave a very big "Thank You". Caret is the first markdown editor available for Windows that renders the #s in it's own column. I know and love this feature from iA Writer but it's only available for macOS.

pslobo commented 7 years ago

I agree with @alinnert to some extent. While @ihackalot makes a valid point with

it defeats the very basic principle of using semantic markup to render a structured document.

the same could be said for every bit of styled text such as italicising text when it's italic, emboldening text when it's bold or the different colour for code etc. If we truly want a text editor that does nothing more that display the markup, then there are other editors out there. Since I more often than not simply look at the editor and not the rendered preview, I appreciate the new heading since it helps me see better the structure of my document.

I wouldn't mind being able to configure the font and such, but I'd prefer to have them as is than revert to previous way.

matchatype commented 7 years ago

I see @alinnert and @pslobo and can't see your point. Let me explain... Here what Markdown is:

Markdown is a text-to-HTML conversion tool for web writers. Markdown allows you to write using an easy-to-read, easy-to-write plain text format, then convert it to structurally valid XHTML (or HTML).

Thus, β€œMarkdown” is two things: (1) a plain text formatting syntax; and (2) a software tool, written in Perl, that converts the plain text formatting to HTML.

Being a conversion tool, Markdown documents don't have to be pretty at all. Making text look nice and pretty is the job of the UI/UX of your editor in what concerns the styling of the interface and its typography, not the meaning of the document. Sorry if it's unclear, but the context of pretty here is the editor's typography, not the document, in order to convey it's meaning. Otherwise what's the point of structuring it at all? You could just use MS Word like editors (if all you want is titles to look like titles, which is not what Markdown is).

Additionally, Caret's implementation of this anti-feature is not that great imho. Looking at the attached screenshot you'll see how there's no relationship at all between elements in the way they render. Titles are just an arbitrarily picked typeface at an arbitrarily chosen size. There's apparently no modular scale in place... Text size just increments/decrements in a linear and independent fashion for each element, while it should be more responsive instead. By the way, that's the reason why Caret looks good only at certain sizes... The more you lean toward the extremes, the funnier.

caret-headings

All in all, I think the boundary of pretty for Caret must be that of the predefined font preferences set by the user. Good quality fonts will provide a number of variants and sizes to choose from to aid you at displaying cursive, and strong and monospace as a visual cue of what they stand for... But that's all. Everything else I think it's a rendering concern for the theme. So ya, if want it to look good, just pick a nice font family to start with.

That's what Markdown is for regular documents and Fountain is for novels, and so on. @alinnert if you write a novel, you won't present it to your editor in Zapfino you know, but in Courier in a very structured way. The designer will then take the text into Indesign and render the book for the final reader. Maybe in Zapfino... Hopefully not πŸ˜„

I can write the word β€˜dog’ with any typeface, and it doesn’t have to look like a dog. But there are people who, when they write β€˜dog’ think it should bark, you know? –Massimo Vignelli.

pslobo commented 7 years ago

You could just use MS Word like editors (if all you want is titles to look like titles, which is not what Markdown is)

Again, the same could be said for bold, italic and more. I'm assuming that you would also prefer that Caret simply show you the syntax and not stylise that text. Mind you, I'm not saying it's perfect and obviously the best way to deal with this would be to offer the user a choice (use these headings or not, choose the font for the headings etc.). Then again, apps like iA Writer make certain choices that the user simply has to accept (or choose another app).

Personally, the plethora of markdown editors I've used in the past adhere somewhat to the principal you're defending (and with which I agree to some extent), and therefore at first, the change felt odd. Now however, I quite appreciate it.

I guess the idea behind this, as with almost all other tweaks such as syntax highlighting, stylising text etc. is to facilitate reading and quickly understanding what is on the digital page. Yes, we could have a plain editor and then toggle preview for that, and no, they will never satisfy everybody, but what I really appreciate about Caret and its developers is their willingness to discuss these types of things with the users, listen and iterate. I have little doubt that with all our input, Caret will quickly become the best editor around.

On a side note, which font is that you're using?

matchatype commented 7 years ago

I think I understand what you mean @pslobo but... nope, allow me to disagree with your point please, although I do agree that at the extremes boundaries get real thin πŸ˜„

Again, the same could be said for bold, italic and more.

Again, this is not true.The nature of bold and italic is prosodic stress which, in linguistics, it means the relative prominence given to a certain syllable in a word, or to a certain word in a phrase or sentence, to convey meaning that otherwise could not be captured in written form.

Headlines, on the other hand, where introduced just in the 19th century, when increased competition between newspapers led to the use of attention-getting headlines. So headlines are text indicating the nature of the article, and therefore the meaning of the document, not the structure of the text.

You would eventually yell in bold, but you wouldn't set it as a headline. A title/heading is instead different —and I believe the difference between titles and headlines are the source of confusion here— and for that good typefaces provide you with titling capitals, which are a variant of uppercase designed especially for heading and titles. So ya, Caret could eventually let you display titles in uppercase, providing you pick a good font to start with... but that's all there is to be fancy.

So my point is that you should be allowed to structure text to give it meaning, as of the intent of Markdown (thus giving some visual cue, whatever you like), and leave it to rendering the job of conveying the meaning of the document as a whole. You just set it to be a heading in Markdown and you render it at big size in preview.

pslobo commented 7 years ago

With that thorough explanation and lesson I concede victory and stand corrected. 😁

matchatype commented 7 years ago

I'm glad @pslobo Thank you for giving me the opportunity to clarify to myself what I meant πŸ˜„ Although I'd better like to be wrong and have my typography set again as it should instead. Would you please join me to convince developers? πŸ˜ƒ

pslobo commented 7 years ago

@erusev and @astoilkov this request should happen 😁

On a more serious note, I think that a good middle ground, and pretty much in line with the flexibility of Caret would be to have settings for this. Things like:

styled_headings: true | false
styled_headings_font: Fancy Font Regular
styled_headings_size: 120%

Obviously we have no way of knowing how complex this would be to achieve so as always, we've made our voice heard, now the decision is in your capable hands.

Also, @ihackalot what font are you using in the above example, I liked it.

matchatype commented 7 years ago

@pslobo that might work, but could also be the door to a stylistic hell. What about plain text as before as default (so you damn pay me a dime for that lesson before 🀣 and make me happy) and then you take the path of Deckset instead, and create very nice looking themes? This would make all happy I guess, as carefully designed themes would ensure great balance across the board, and some degree of freedom to the fancy people πŸ˜„

@pslobo your proposal is too close to that of @alinnert which honestly I see as overly complicated. You shouldn't tinker that much with typography, it will give you headaches and not even make you look cool.

@pslobo I apologize, the font request thing just slipped through 😭 I'm using Operator Mono.

alinnert commented 7 years ago

@ihackalot what do you think about the way iA Writer went? Pre-defining the font settings completely? At least I think they did that. I don't know it that well. But some time ago I found they use a specific font. (unfortunately I can't find it right now). I'd also take that if looks nice.

pslobo commented 7 years ago

I'd be ok with the path akin to iA Writer or Deckset, where the developers choose a sensible mix of design styles and the user either accepts them or moves on. I certainly don't want to see Caret go down the same path as Sublime Text (one could spend a week tweaking all those settings).

Thanks for the font @ihackalot added to my Christmas list πŸ˜€

matchatype commented 7 years ago

Well I think iA Writer is a bit off topic here. All I can say is that it's the editor I have currently switched to because:

astoilkov commented 7 years ago

Caret now has a way to disable big headings. This could be achieved by going to Preferences and setting the useLargeFontInHeadings to false.

Closing this issue. Thanks to all the people part of the discussion which explained their point of view - this always helps us improve the product.