[{"data":1,"prerenderedAt":332},["ShallowReactive",2],{"project-29643313":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":27,"sentiment":28,"stance_mix":29,"scored_comments":34,"aspects":35,"strip":43,"post_text":46,"what":47,"said":63,"maker_in_thread":207,"shape":212,"grid":215,"attempts":293,"same_week":294,"maker_shows":285,"maker_hidden":324,"reader_version":325,"card":326},"29643313","Aftertext","It starts getting clunky but I added some new keywords to handle the multiple hits scenarios: match and matchAll.","maker","Show HN: Aftertext","https:\u002F\u002Fbreckyunits.com\u002Faftertext.html","breckyunits.com","breck",1640128611,2021,96,36,550,2533,22,"notable","dev_tools","markup language","library",[21,24,25,26],"markdown alternative","text formatting","plain text markup","mixed",-0.13,{"positive":30,"neutral":31,"mixed":32,"critical":33},6,11,2,9,28,{"design":36,"execution":39,"idea":40},{"positive":37,"critical":38},1,8,{"positive":37,"critical":37},{"positive":41,"critical":42},4,0,[37,37,44,37,44,37,42,45,44,44,44,37,42,44,42,42,42,42,45,45,37,42,44,45,37,44,37,44,42,44,45,44,44,37,45,44],3,5,null,{"problem":48,"audience":46,"pricing":46,"motivation":46,"time_to_build":46,"stack":60,"openness":61,"stage":62,"team_size":61},{"value":49,"source":50,"evidence":51},"Markup symbols are hard to remember; Aftertext describes formatting in words after the text","commenter",[52,56],{"id":53,"by":54,"text":55},"29644964","hiyer","This is really cool. A bit verbose for my taste, but OTOH it could be easier to remember than markdown or html. For example, I often forget the syntax for links in markdown - do…",{"id":57,"by":58,"text":59},"29644869","epicureanideal","I like this a lot, and I think it's an important contribution! I think it's a major advantage that the formatting description is provided using words rather than combinations of…",[],"unknown","beta",{"praise":64,"objections":84,"requests":130,"questions":155,"alternatives":170},[65,70,77],{"value":66,"source":50,"evidence":67},"Readable word-based instructions instead of symbols",[68,69],{"id":57,"by":58,"text":59},{"id":53,"by":54,"text":55},{"value":71,"source":50,"evidence":72},"Works well with collaborative plain-text editing (CRDTs)",[73],{"id":74,"by":75,"text":76},"29645420","doomrobo","Here's an interesting benefit this has over inline markup languages: it's natively compatible with text-based CRDTs. Normally, collaborative rich text editing is a strictly…",{"value":78,"source":50,"evidence":79},"Useful for parallel text and translation annotation",[80],{"id":81,"by":82,"text":83},"29646547","dejj","This will be lovely for parallel text: annotating each word with its translation AND retaining the original as well as the annotations in readable form. Even overlapping ranges…",[85,97,108,116],{"value":86,"source":50,"evidence":87},"Verbose, repeats the text for each markup instruction",[88,92,96],{"id":89,"by":90,"text":91},"29644909","torbTurret","Seems verbose having to repeat everything so often. Given how often I alias stuff after only a few repeats, I can see this becoming annoying quick. Still always cool to see…",{"id":93,"by":94,"text":95},"29677557","account-5","The thing I like about markdown and similar syntax's are the simplicity and succinctness. When you take the markup out of context, well you lose context. My issue with this would…",{"id":53,"by":54,"text":55},{"value":98,"source":50,"evidence":99},"Selectors depend on the text, so edits must be made in two places",[100,104],{"id":101,"by":102,"text":103},"29643790","Minor49er","This is an interesting idea, though I'd be worried that it could complicate the editing process compared to mixed content and markup. In particular, the examples of selectors in…",{"id":105,"by":106,"text":107},"29647732","doovd","This is horrific, imagine changing your text and having to update the indices",{"value":109,"source":50,"evidence":110},"Byte\u002Findex-based selectors are fragile when text changes",[111,115],{"id":112,"by":113,"text":114},"29647025","dspillett","That looks very inflexible for later edits, marking characters or words means a potentially cumbersome recounting if something is reworded or just if a typo is fixed. Also, I get…",{"id":105,"by":106,"text":107},{"value":117,"source":50,"evidence":118},"Cannot easily target repeated words; only first match used",[119,123,127],{"id":120,"by":121,"text":122},"29646001","yellowapple","Neat idea, though as I was playing around with it I noticed right away that the following seems to be impossible (or else very non-obvious) via Aftertext: \"How much wood could a…",{"id":124,"by":125,"text":126},"29643580","renewiltord","Interesting lang. ``` aftertext It's the difference between helping your Uncle Jack off a horse and helping your uncle jack off a horse. italics off italics off ``` Yields (in…",{"id":128,"by":11,"text":129},"29644756","The current implementation just matches the first match, as that was the simplest and most common occurrence. But I have indeed hit this footgun (though it in my case involving…",[131,147,151],{"value":132,"source":50,"evidence":133},"Regex or matchAll selectors",[134,138,141,144],{"id":135,"by":136,"text":137},"29643682","Turing_Machine","> but with Aftertext the bytes increase linearly with N, the size of the span you are marking up Maybe allow regexes for the span?",{"id":139,"by":82,"text":140},"29646787","Or dive into AWK-style selectors all the way: ``` aftertext The fox jumped the dog \u002F^The\u002F italics 15,18 italics ```",{"id":142,"by":11,"text":143},"29644762","> regexes You could do that. I have not needed regex selectors yet but would be easy enough to add if someone had a need.",{"id":145,"by":11,"text":146},"29656444","It starts getting clunky but I added some new keywords to handle the multiple hits scenarios: match and matchAll. Demo:…",{"value":148,"source":50,"evidence":149},"Markdown conversion",[150],{"id":57,"by":58,"text":59},{"value":152,"source":50,"evidence":153},"Inline syntax option",[154],{"id":57,"by":58,"text":59},[156,163],{"value":157,"source":50,"evidence":158},"How to distinguish emphasis markers from literal text",[159],{"id":160,"by":161,"text":162},"29644899","citizenkeen","How do you distinguish between *text that looks like this* and _text that looks like this_?",{"value":164,"source":50,"evidence":165},"Whether it has improved productivity for the maker",[166],{"id":167,"by":168,"text":169},"29643452","jawerty","Very cool, I'm curious have you noticed any productivity improvements after using this to write?",[171,181,189,196,203],{"value":172,"source":50,"evidence":173},"ROFF\u002Fgroff",[174,178],{"id":175,"by":176,"text":177},"29647466","kristopolous","It's actually extremely old school. ROFF is similar to this You can just make it .p, .i, .b, etc. .br for line break. https:\u002F\u002Fwww.systutorials.com\u002Fdocs\u002Flinux\u002Fman\u002F7-groff_man\u002F",{"id":179,"by":82,"text":180},"29648903","Wouldn’t ROFF require putting the format commands in-line? Like so: ``` How much .i wood would a .i wood chuck chuck if a .i wood chuck could chuck .i wood? ``` I have no…",{"value":182,"source":50,"evidence":183},"Markdown",[184,185],{"id":53,"by":54,"text":55},{"id":186,"by":187,"text":188},"29645617","merlincorey","``` aftertext Just a guess, but maybe bold a guess paragraph open aftertext a guess that could work. underline a guess ``` Might render to: ``` Just *a guess*, but maybe _a…",{"value":190,"source":50,"evidence":191},"reStructuredText",[192],{"id":193,"by":194,"text":195},"29644334","nerdponx","Interesting. Seems like there is some overlap with reStructuredText.",{"value":197,"source":50,"evidence":198},"Pollen",[199],{"id":200,"by":201,"text":202},"29645741","chipotle_coyote","> Could Aftertext be made inline with a small number of symbols and result in a net reduction of symbols and greater explicitness and intuitiveness? For example, could an unusual…",{"value":204,"source":50,"evidence":205},"HTML",[206],{"id":53,"by":54,"text":55},{"comments":41,"answered":44,"key":208},[209,210,211],{"id":145,"text":146},{"id":128,"text":129},{"id":142,"text":143},{"commenters":34,"max_depth":44,"maker_replies":41,"first_comment_mins":213,"lifespan_hours":214},17,69,[216,218,219,223,224,226,227,229,233,235,239,240,242,243,244,248,251,254,257,259,261,262,263,264,267,269,270,272,275,278,280,284,286,287,290,292],[101,42,37,217,102,42],"project\u002Fcritical\u002Fdesign",[120,37,37,217,121,42],[220,37,44,221,222,42],"29646121","project\u002Fneutral\u002Fdesign","phnofive",[112,37,37,217,113,42],[225,37,44,221,82,42],"29647363",[105,37,37,217,106,42],[145,37,42,228,11,37],"maker\u002Fneutral\u002Fexecution",[230,32,45,231,232,42],"29646221","project\u002Fpositive\u002Fexecution","Crazyontap",[175,44,44,234,176,42],"project\u002Fneutral\u002Fidea",[236,44,44,237,238,42],"29648808","project\u002Fmixed\u002Fdesign","marttt",[179,44,44,221,82,42],[124,41,37,241,125,42],"project\u002Fcritical\u002Fexecution",[128,41,42,228,11,37],[53,45,44,237,54,42],[245,45,42,246,247,42],"29645059","other\u002Fneutral\u002Fnone","dsr_",[249,45,42,246,250,42],"29645458","xbpx",[252,45,42,246,253,42],"29646068","dmje",[255,45,42,246,256,42],"29647135","Terretta",[74,30,45,258,75,42],"project\u002Fpositive\u002Fidea",[81,260,45,258,82,42],7,[135,38,37,217,136,42],[142,38,42,228,11,37],[139,38,44,221,82,42],[265,33,45,258,266,42],"29645831","totetsu",[89,268,37,217,90,42],10,[193,31,44,234,194,42],[93,271,37,217,94,42],12,[167,273,44,274,168,42],13,"maker\u002Fneutral\u002Fnone",[276,273,42,277,11,37],"29643617","maker\u002Fneutral\u002Fidea",[279,273,44,277,168,42],"29644011",[281,282,45,283,82,42],"29646622",14,"project\u002Fpositive\u002Fdesign",[160,285,44,221,161,42],15,[186,285,44,221,187,42],[288,285,37,217,289,42],"29645865","arvigeus",[57,291,45,258,58,42],16,[200,291,44,234,201,42],[],[295,300,305,310,315,320],{"id":296,"name":297,"points":298,"category":299},"29630293","SectorLISP",513,"languages",{"id":301,"name":302,"points":303,"category":304},"29620235","fourlightyears.blogspot.com",343,"hardware",{"id":306,"name":307,"points":308,"category":309},"29637188","SlikSafe",284,"infrastructure",{"id":311,"name":312,"points":313,"category":314},"29605429","Lindy Hacker News",221,"learning_science",{"id":316,"name":317,"points":318,"category":319},"29622970","All Black Screen",121,"web_saas",{"id":321,"name":322,"points":323,"category":299},"29628772","Fiber",119,false,"v2",{"id":327,"name":5,"line":328,"ai":324,"cat":20,"year":13,"points":14,"comments":15,"rec":27,"s":28,"top":18,"kw":329,"maker":11,"domain":10,"tier":19,"attempts":42,"strip":330,"url":9,"mix":331,"praise":66,"objection":86,"sub":21},29643313,"It starts getting clunky but I added some new keywords to handle the multiple hits scenarios: match and…",[21,24,25,26],"113131053331030000551035131303533153",[30,31,32,33],1794036614484]