[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"sanity-Yo_jo8oD9yF-_xJUE29uAmf0rb_LNf_ZzkcfnNVltSE":3,"sanity-rKaBEaWJb42UCqd-OQwa3Y7aa3jJ-vJl6ZRu5hv4bKo":431},{"data":4,"sourceMap":-1},{"latestPodcast":5,"latestReleases":14,"post":39,"recent":406},[6],{"_id":7,"publishedAt":8,"slug":9,"sponsored":12,"title":13},"4d0175f4-40a8-47eb-9bb3-a453b326aa7d","2026-07-03T07:40:00.000Z",{"_type":10,"current":11},"slug","the-good-the-bad-and-the-ai-apps",null,"The good, the bad, and the AI apps",[15,21,27,33],{"_id":16,"publishedAt":17,"slug":18,"title":20},"eb5b66eb-9410-4329-83bb-22bbff39402a","2026-04-28T13:00:00.000Z",{"_type":10,"current":19},"turn-scattered-knowledge-into-trusted-intelligence","Turning scattered knowledge into trusted intelligence: Stack Internal 2026.3",{"_id":22,"publishedAt":23,"slug":24,"title":26},"369c2401-b62e-4a37-8ff8-bf603023ecad","2026-03-02T15:03:00.988Z",{"_type":10,"current":25},"what-s-new-at-stack-overflow-march-2026","What’s new at Stack Overflow: March 2026",{"_id":28,"publishedAt":29,"slug":30,"title":32},"5e9053a4-07ea-447c-91ea-29e0b6228537","2026-02-02T15:00:00.000Z",{"_type":10,"current":31},"what-s-new-at-stack-overflow-february-2026","What’s new at Stack Overflow: February 2026",{"_id":34,"publishedAt":35,"slug":36,"title":38},"a1b538eb-a8a6-46d0-80a1-ac70ec9bb935","2026-01-05T10:00:00.000-05:00",{"_type":10,"current":37},"what-s-new-at-stack-overflow-january-2026","What’s new at Stack Overflow: January 2026",{"_createdAt":40,"_id":41,"_rev":42,"_type":43,"_updatedAt":44,"author":45,"body":59,"comments":377,"dateUrl":378,"excerpt":379,"legacyBody":380,"product":12,"publishedAt":383,"slug":384,"sponsored":12,"tags":386,"title":405,"visible":377},"2023-05-25T09:36:59Z","wp-post-3598","dgl3SCUzppW3U2LvCoS3kq","blogPost","2023-07-13T14:54:28Z",[46],{"_createdAt":47,"_id":48,"_rev":49,"_type":50,"_updatedAt":51,"avatar":52,"employee":54,"name":55,"role":56,"slug":57},"2023-05-23T16:27:18Z","wp-author-114","07ZbrKPSUrjrV4wQ6fam8u","blogAuthor","2023-08-29T11:49:01Z",{"_type":53},"image","former","Jeff Atwood","Co-founder",{"current":58},"jeffatwood",[60,71,85,96,107,135,154,168,176,195,205,212,220,228,236,244,247,255,258,266,269,297,305,308,327,357],{"_key":61,"_type":62,"children":63,"markDefs":69,"style":70},"c4b5b473358d","block",[64],{"_key":65,"_type":66,"marks":67,"text":68},"c4b5b473358d0","span",[],"We made a few key technology bets when we created Stack Overflow:",[],"normal",{"_key":72,"_type":62,"children":73,"level":79,"listItem":80,"markDefs":81,"style":70},"33dff0b527d9",[74],{"_key":75,"_type":66,"marks":76,"text":78},"33dff0b527d90",[77],"03a86173d671","OpenID",1,"bullet",[82],{"_key":77,"_type":83,"href":84,"reference":12},"link","http:\u002F\u002Fopenid.net\u002F",{"_key":86,"_type":62,"children":87,"level":79,"listItem":80,"markDefs":93,"style":70},"9d2283dc9689",[88],{"_key":89,"_type":66,"marks":90,"text":92},"9d2283dc96890",[91],"b6929dd13bdd","Markdown",[94],{"_key":91,"_type":83,"href":95,"reference":12},"http:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMarkdown",{"_key":97,"_type":62,"children":98,"level":79,"listItem":80,"markDefs":104,"style":70},"790b513ab283",[99],{"_key":100,"_type":66,"marks":101,"text":103},"790b513ab2830",[102],"1fd8e8611974","ASP.NET MVC",[105],{"_key":102,"_type":83,"href":106,"reference":12},"http:\u002F\u002Fwww.asp.net\u002Fmvc\u002F",{"_key":108,"_type":62,"children":109,"markDefs":132,"style":70},"94452a0027de",[110,114,119,123,128],{"_key":111,"_type":66,"marks":112,"text":113},"94452a0027de0",[],"I'll defer the discussion on the other two items for another day, but after ",{"_key":115,"_type":66,"marks":116,"text":118},"94452a0027de1",[117],"strong","spending a year immersed in Markdown",{"_key":120,"_type":66,"marks":121,"text":122},"94452a0027de2",[]," -- ",{"_key":124,"_type":66,"marks":125,"text":127},"94452a0027de3",[126],"00f580a5d26a","the lightweight markup language we use to format posts on all Trilogy sites",{"_key":129,"_type":66,"marks":130,"text":131},"94452a0027de4",[]," -- I have some thoughts I'd like to share.",[133],{"_key":126,"_type":83,"href":134,"reference":12},"http:\u002F\u002Fstackoverflow.com\u002Fediting-help",{"_key":136,"_type":62,"children":137,"markDefs":151,"style":70},"19b09ff96da2",[138,142,147],{"_key":139,"_type":66,"marks":140,"text":141},"19b09ff96da20",[],"We knew early on that there were ",{"_key":143,"_type":66,"marks":144,"text":146},"19b09ff96da21",[145],"e6e22078ae39","a handful of Markdown Gotchas",{"_key":148,"_type":66,"marks":149,"text":150},"19b09ff96da22",[],", thanks to the sage advice of John Fraser (who, sadly, I have completely lost contact with.) Based on those gotchas, we quickly adjusted our Markdown support to fix a few obvious things:",[152],{"_key":145,"_type":83,"href":153,"reference":12},"http:\u002F\u002Fblog.stackoverflow.com\u002F2008\u002F06\u002Fthree-markdown-gotcha\u002F",{"_key":155,"_type":62,"children":156,"level":79,"listItem":166,"markDefs":167,"style":70},"9ba7c4383e88",[157,161],{"_key":158,"_type":66,"marks":159,"text":160},"9ba7c4383e880",[],"Removed support for intra-word emphasis ",{"_key":162,"_type":66,"marks":163,"text":165},"9ba7c4383e881",[164],"code","like_this_example","number",[],{"_key":169,"_type":62,"children":170,"level":79,"listItem":166,"markDefs":175,"style":70},"fbe21d4a254f",[171],{"_key":172,"_type":66,"marks":173,"text":174},"fbe21d4a254f0",[],"Added auto-hyperlink support for http:\u002F\u002F URLs in posts",[],{"_key":177,"_type":62,"children":178,"markDefs":192,"style":70},"9837161363df",[179,183,188],{"_key":180,"_type":66,"marks":181,"text":182},"9837161363df0",[],"Apparently GitHub also uses Markdown, and they independently arrived at some of the same conclusions we did -- synthesizing something they call ",{"_key":184,"_type":66,"marks":185,"text":187},"9837161363df1",[186],"9244089122da","GitHub Flavored Markdown",{"_key":189,"_type":66,"marks":190,"text":191},"9837161363df2",[],".",[193],{"_key":186,"_type":83,"href":194,"reference":12},"https:\u002F\u002Fguides.github.com\u002Ffeatures\u002Fmastering-markdown\u002F#GitHub-flavored-markdown",{"_key":196,"_type":62,"children":197,"level":79,"listItem":166,"markDefs":204,"style":70},"ef3c9a636380",[198,201],{"_key":199,"_type":66,"marks":200,"text":160},"ef3c9a6363800",[],{"_key":202,"_type":66,"marks":203,"text":165},"ef3c9a6363801",[164],[],{"_key":206,"_type":62,"children":207,"level":79,"listItem":166,"markDefs":211,"style":70},"bc9f6bed305a",[208],{"_key":209,"_type":66,"marks":210,"text":174},"bc9f6bed305a0",[],[],{"_key":213,"_type":62,"children":214,"level":79,"listItem":166,"markDefs":219,"style":70},"c1d20f5c45a1",[215],{"_key":216,"_type":66,"marks":217,"text":218},"c1d20f5c45a10",[],"Automatic return-based linebreaks instead of \"two spaces at end of line\" linebreaks",[],{"_key":221,"_type":62,"children":222,"level":79,"listItem":166,"markDefs":227,"style":70},"b830406ebeb5",[223],{"_key":224,"_type":66,"marks":225,"text":226},"b830406ebeb50",[],"Support for some magic strings that auto-convert to GitHub specific links",[],{"_key":229,"_type":62,"children":230,"markDefs":235,"style":70},"1e0e28eebb66",[231],{"_key":232,"_type":66,"marks":233,"text":234},"1e0e28eebb660",[],"Since GitHub and Stack Overflow match exactly on #1 and #2, it's fairly safe to say that those are in fact deficiencies in Markdown, at least for a programming audience. (Though I'd argue they apply to general audiences, too.)",[],{"_key":237,"_type":62,"children":238,"markDefs":243,"style":70},"30ae01b7307c",[239],{"_key":240,"_type":66,"marks":241,"text":242},"30ae01b7307c0",[],"As for #3, that's one I hadn't considered. In normal Markdown, this:",[],{"_key":245,"_type":164,"code":246,"markDefs":12},"960898a9a803","Roses are red¶\nViolets are blue¶",{"_key":248,"_type":62,"children":249,"markDefs":254,"style":70},"78702fe1835f",[250],{"_key":251,"_type":66,"marks":252,"text":253},"78702fe1835f0",[],"Will render like this:",[],{"_key":256,"_type":164,"code":257,"markDefs":12},"e2a799c3a9bb","Roses are red violets are blue",{"_key":259,"_type":62,"children":260,"markDefs":265,"style":70},"cdc8d23459b0",[261],{"_key":262,"_type":66,"marks":263,"text":264},"cdc8d23459b00",[],"The Markdown answer is to add two spaces at the end of the line (or a literal\n, I suppose).",[],{"_key":267,"_type":164,"code":268,"markDefs":12},"5c885462036a","Roses are red  ¶\nviolets are blue¶",{"_key":270,"_type":62,"children":271,"markDefs":294,"style":70},"840f6f07930d",[272,276,281,285,290],{"_key":273,"_type":66,"marks":274,"text":275},"840f6f07930d0",[],"Although it's easy ",{"_key":277,"_type":66,"marks":278,"text":280},"840f6f07930d1",[279],"em","once you know the trick",{"_key":282,"_type":66,"marks":283,"text":284},"840f6f07930d2",[],", this is far from intuitive to most. I'm reminded a bit of the ",{"_key":286,"_type":66,"marks":287,"text":289},"840f6f07930d3",[288],"739d298a13fe","double-click mouse problem",{"_key":291,"_type":66,"marks":292,"text":293},"840f6f07930d4",[],". I wonder if we should adopt the GitHub linebreak approach here.",[295],{"_key":288,"_type":83,"href":296,"reference":12},"http:\u002F\u002Fwww.codinghorror.com\u002Fblog\u002Farchives\u002F000096.html",{"_key":298,"_type":62,"children":299,"markDefs":304,"style":70},"acb32387298e",[300],{"_key":301,"_type":66,"marks":302,"text":303},"acb32387298e0",[],"As for the fourth item, when text is entered in these specific formats ...",[],{"_key":306,"_type":164,"code":307,"markDefs":12},"090090f1a6e6","* SHA: be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2\n* User@SHA ref: mojombo@be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2\n* User\u002FProject@SHA: mojombo\u002Fgod@be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2\n* #Num: #1\n* User\u002F#Num: mojombo#1\n* User\u002FProject#Num: mojombo\u002Fgod#1",{"_key":309,"_type":62,"children":310,"markDefs":324,"style":70},"8a1e0e48b723",[311,315,320],{"_key":312,"_type":66,"marks":313,"text":314},"8a1e0e48b7230",[],"... those magic strings are detected by the GitHub Flavored Markdown and auto-converted into GitHub specific hyperlinks. ",{"_key":316,"_type":66,"marks":317,"text":319},"8a1e0e48b7231",[318],"65be4893453a","Something similar",{"_key":321,"_type":66,"marks":322,"text":323},"8a1e0e48b7232",[]," has been proposed on meta for internal Stack Overflow references, so this is an idea we've been entertaining for some time as well.",[325],{"_key":318,"_type":83,"href":326,"reference":12},"http:\u002F\u002Fmeta.stackoverflow.com\u002Fquestions\u002F1010\u002Fadvanced-syntax-ideas",{"_key":328,"_type":62,"children":329,"markDefs":352,"style":70},"4b0df4fd7574",[330,334,339,343,348],{"_key":331,"_type":66,"marks":332,"text":333},"4b0df4fd75740",[],"Markdown is remarkably flexible, because it allows you to intermix ",{"_key":335,"_type":66,"marks":336,"text":338},"4b0df4fd75741",[337],"9bd2c0125e40","a narrow list of whitelisted HTML",{"_key":340,"_type":66,"marks":341,"text":342},"4b0df4fd75742",[]," tags with ",{"_key":344,"_type":66,"marks":345,"text":347},"4b0df4fd75743",[346],"7541d5c39dfb","Markdown \"fancy ASCII\" syntax",{"_key":349,"_type":66,"marks":350,"text":351},"4b0df4fd75744",[]," in a fairly logical way, at least most of the time.",[353,355],{"_key":337,"_type":83,"href":354,"reference":12},"http:\u002F\u002Fmeta.stackoverflow.com\u002Fquestions\u002F1777\u002Fwhat-html-tags-are-allowed",{"_key":346,"_type":83,"href":356,"reference":12},"http:\u002F\u002Fmeta.stackoverflow.com\u002Fediting-help",{"_key":358,"_type":62,"children":359,"markDefs":376,"style":70},"1c85f136fbd9",[360,364,368,372],{"_key":361,"_type":66,"marks":362,"text":363},"1c85f136fbd90",[],"So, now that ",{"_key":365,"_type":66,"marks":366,"text":367},"1c85f136fbd91",[279],"you've",{"_key":369,"_type":66,"marks":370,"text":371},"1c85f136fbd92",[]," had a chance to mess around with Markdown for a year -- ",{"_key":373,"_type":66,"marks":374,"text":375},"1c85f136fbd93",[117],"what are your thoughts?",[],true,"2009\u002F10\u002F15","",{"code":381,"language":382},"\u003Cp>We made a few key technology bets when we created Stack Overflow:\u003C\u002Fp>\n\u003Cul>\u003Cli>\n\u003Cp>\u003Ca href=\"http:\u002F\u002Fopenid.net\u002F\">OpenID\u003C\u002Fa>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ca href=\"http:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMarkdown\">Markdown\u003C\u002Fa>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"http:\u002F\u002Fwww.asp.net\u002Fmvc\u002F\">ASP.NET MVC\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\u003Cp>I'll defer the discussion on the other two items for another day, but after \u003Cstrong>spending a year immersed in Markdown\u003C\u002Fstrong> -- \u003Ca href=\"http:\u002F\u002Fstackoverflow.com\u002Fediting-help\">the lightweight markup language we use to format posts on all Trilogy sites\u003C\u002Fa> -- I have some thoughts I'd like to share.\u003C\u002Fp>\n\u003Cp>We knew early on that there were \u003Ca href=\"http:\u002F\u002Fblog.stackoverflow.com\u002F2008\u002F06\u002Fthree-markdown-gotcha\u002F\">a handful of Markdown Gotchas\u003C\u002Fa>, thanks to the sage advice of John Fraser (who, sadly, I have completely lost contact with.) Based on those gotchas, we quickly adjusted our Markdown support to fix a few obvious things:\u003C\u002Fp>\n\u003Col>\u003Cli>\n\u003Cp>Removed support for intra-word emphasis \u003Ccode>like_this_example\u003C\u002Fcode>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>Added auto-hyperlink support for http:\u002F\u002F URLs in posts\u003C\u002Fli>\n\u003C\u002Fol>\u003Cp>Apparently GitHub also uses Markdown, and they independently arrived at some of the same conclusions we did -- synthesizing something they call \u003Ca href=\"https:\u002F\u002Fguides.github.com\u002Ffeatures\u002Fmastering-markdown\u002F#GitHub-flavored-markdown\">GitHub Flavored Markdown\u003C\u002Fa>.\u003C\u002Fp>\n\u003Col>\u003Cli>\n\u003Cp>Removed support for intra-word emphasis \u003Ccode>like_this_example\u003C\u002Fcode>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Added auto-hyperlink support for http:\u002F\u002F URLs in posts\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Automatic return-based linebreaks instead of \"two spaces at end of line\" linebreaks\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>Support for some magic strings that auto-convert to GitHub specific links\u003C\u002Fli>\n\u003C\u002Fol>\u003Cp>Since GitHub and Stack Overflow match exactly on #1 and #2, it's fairly safe to say that those are in fact deficiencies in Markdown, at least for a programming audience. (Though I'd argue they apply to general audiences, too.)\u003C\u002Fp>\n\u003Cp>As for #3, that's one I hadn't considered. In normal Markdown, this:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>Roses are red&para;\nViolets are blue&para;\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Will render like this:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>Roses are red violets are blue\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>The Markdown answer is to add two spaces at the end of the line (or a literal \u003Cbr>, I suppose).\u003C\u002Fp>\n\u003Cpre>\u003Ccode>Roses are red  &para;\nviolets are blue&para;\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Although it's easy \u003Cem>once you know the trick\u003C\u002Fem>, this is far from intuitive to most. I'm reminded a bit of the \u003Ca href=\"http:\u002F\u002Fwww.codinghorror.com\u002Fblog\u002Farchives\u002F000096.html\">double-click mouse problem\u003C\u002Fa>. I wonder if we should adopt the GitHub linebreak approach here. \u003C\u002Fp>\n\u003Cp>As for the fourth item, when text is entered in these specific formats ...\u003C\u002Fp>\n\u003Cpre>\u003Ccode>* SHA: be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2\n* User@SHA ref: mojombo@be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2\n* User\u002FProject@SHA: mojombo\u002Fgod@be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2\n* #Num: #1\n* User\u002F#Num: mojombo#1\n* User\u002FProject#Num: mojombo\u002Fgod#1\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>... those magic strings are detected by the GitHub Flavored Markdown and auto-converted into GitHub specific hyperlinks. \u003Ca href=\"http:\u002F\u002Fmeta.stackoverflow.com\u002Fquestions\u002F1010\u002Fadvanced-syntax-ideas\">Something similar\u003C\u002Fa> has been proposed on meta for internal Stack Overflow references, so this is an idea we've been entertaining for some time as well.\u003C\u002Fp>\n\u003Cp>Markdown is remarkably flexible, because it allows you to intermix \u003Ca href=\"http:\u002F\u002Fmeta.stackoverflow.com\u002Fquestions\u002F1777\u002Fwhat-html-tags-are-allowed\">a narrow list of whitelisted HTML\u003C\u002Fa> tags with \u003Ca href=\"http:\u002F\u002Fmeta.stackoverflow.com\u002Fediting-help\">Markdown \"fancy ASCII\" syntax\u003C\u002Fa> in a fairly logical way, at least most of the time.\u003C\u002Fp>\n\u003Cp>So, now that \u003Cem>you've\u003C\u002Fem> had a chance to mess around with Markdown for a year -- \u003Cstrong>what are your thoughts?\u003C\u002Fstrong>\u003C\u002Fp>","html","2009-10-15T12:00:00.000Z",{"current":385},"markdown-one-year-later",[387,395,400],{"_createdAt":388,"_id":389,"_rev":390,"_type":391,"_updatedAt":388,"slug":392,"title":394},"2023-05-23T16:43:21Z","wp-tagcat-background","9HpbCsT2tq0xwozQfkc4ih","blogTag",{"current":393},"background","Background",{"_createdAt":388,"_id":396,"_rev":390,"_type":391,"_updatedAt":388,"slug":397,"title":399},"wp-tagcat-company",{"current":398},"company","Company",{"_createdAt":388,"_id":401,"_rev":390,"_type":391,"_updatedAt":388,"slug":402,"title":404},"wp-tagcat-design",{"current":403},"design","Design","Markdown, One Year Later",[407,413,419,425],{"_id":408,"publishedAt":409,"slug":410,"sponsored":12,"title":412},"28e560af-f0aa-4d46-bd90-f435ad604aa7","2026-06-26T14:00:27.102Z",{"_type":10,"current":411},"paging-charity-how-can-engineering-leaders-avoid-becoming-bond-villains","Paging Charity! How can engineering leaders avoid becoming Bond villains?",{"_id":414,"publishedAt":415,"slug":416,"sponsored":12,"title":418},"4b22c2a3-3779-4966-93eb-5230391dbdce","2026-06-23T14:08:58.595Z",{"_type":10,"current":417},"your-ai-shipped-a-backend-that-boots-that-is-the-whole-problem","Your AI shipped a backend that boots. That is the whole problem.",{"_id":420,"publishedAt":421,"slug":422,"sponsored":12,"title":424},"5cf362e1-fe7b-45af-b69c-914731c6a052","2026-06-23T14:00:00.000Z",{"_type":10,"current":423},"the-2026-developer-survey-is-now-open-for-human-developers-only","The 2026 Developer Survey is now open (for human developers only)!",{"_id":426,"publishedAt":427,"slug":428,"sponsored":12,"title":430},"30b995f7-7cb9-4dd8-bf71-d0685940a32b","2026-06-19T14:00:00.000Z",{"_type":10,"current":429},"dispatches-from-o-reilly-from-capabilities-to-responsibilities","Dispatches from O'Reilly: From capabilities to responsibilities",{"data":432,"sourceMap":-1},{"count":433,"lastTimestamp":434},3,"2023-05-25T09:45:54Z"]