[{"data":1,"prerenderedAt":241},["ShallowReactive",2],{"project-8132599":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":29,"sentiment":30,"stance_mix":31,"scored_comments":36,"aspects":37,"strip":43,"post_text":45,"what":46,"said":67,"maker_in_thread":156,"shape":165,"grid":169,"attempts":206,"same_week":207,"maker_shows":33,"maker_hidden":234,"reader_version":235,"card":236},"8132599","Blast.js","Blast.js separates text for typographic manipulation","title","Show HN: Blast.js separates text for typographic manipulation","http:\u002F\u002Fjulian.com\u002Fresearch\u002Fblast\u002F","julian.com","purpleturtle",1407170177,2014,49,19,654,2272,29,"shown","languages","javascript library","library",[24,25,26,27,28],"javascript","text splitting","typography","css","dom manipulation","debated",0.03,{"positive":32,"neutral":33,"mixed":34,"critical":35},4,2,0,3,9,{"docs":38,"idea":40,"execution":41,"design":42},{"positive":34,"critical":39},1,{"positive":35,"critical":34},{"positive":34,"critical":39},{"positive":34,"critical":39},[34,39,35,34,44,44,34,35,34,39,34,44,39,44,34,34,34,34,34],5,null,{"problem":47,"audience":45,"pricing":45,"motivation":45,"time_to_build":45,"stack":56,"openness":65,"stage":66,"team_size":65},{"value":48,"source":49,"evidence":50},"Splitting text into spans for typographic styling and manipulation","maker",[51,53],{"id":52},"post",{"id":54,"by":11,"text":55},"8133046","Thanks for the kind words! Lettering.js has a slightly smaller footprint and aims to be a dead-simple \"wrap spans around each letter\u002Fword in the HTML element I point you at.\"…",[57],{"value":58,"source":59,"evidence":60},"JavaScript","inferred",[61],{"id":62,"by":63,"text":64},"8133191","emluque","This might be interesting to people who are into this library. I've been working on a JS library that allows for manipulation of CSS properties on a character by character or a…","unknown","launched",{"praise":68,"objections":93,"requests":116,"questions":131,"alternatives":143},[69,85],{"value":70,"source":71,"evidence":72},"Useful for typographic effects and user-generated text","commenter",[73,77,81],{"id":74,"by":75,"text":76},"8133003","nicholasreed","This is wonderful! I see immediate use cases for drop-in username highlighting, without additional templating or '\u003Cspan>' + username + '\u003C\u002Fspan>' spaghetti.",{"id":78,"by":79,"text":80},"8133631","rrrx3","This is a really good thing to have in the old toolbelt. Thanks for creating it.",{"id":82,"by":83,"text":84},"8133393","ef4","Nice work. I'm also a fan of velocity.js (and I wrote liquid-fire to make it easier to use velocity in Ember apps). My top use case for something like blast is applying…",{"value":86,"source":71,"evidence":87},"Good work overall",[88,92],{"id":89,"by":90,"text":91},"8133545","simlevesque","Nice work. However, in the example on the main page when you choose sentences it thinks that \"Blast.js\" is a sentence with the beginning of another. I think that you should…",{"id":82,"by":83,"text":84},[94,101,105],{"value":95,"source":71,"evidence":96},"Claim of UTF-8 and all Latin language support is overstated; only Latin languages handled",[97],{"id":98,"by":99,"text":100},"8134338","jahewson","> 5. All Latin alphabet languages and UTF-8 characters are supported. This claim really needs revising, only latin languages are supported, and the implementation doesn't use the…",{"value":102,"source":71,"evidence":103},"Sentence detection wrongly splits on file extensions like Blast.js",[104],{"id":89,"by":90,"text":91},{"value":106,"source":71,"evidence":107},"Title was changed from original Show HN title",[108,112],{"id":109,"by":110,"text":111},"8132996","dang","We changed the title to the first sentence of the article, which makes this clearer.",{"id":113,"by":114,"text":115},"8133465","Kiro","I don't think Show HN titles should ever be changed. What was the original?",[117,124],{"value":118,"source":71,"evidence":119},"Add ARIA attributes for screen reader accessibility",[120],{"id":121,"by":122,"text":123},"8134070","gh0sts","Lettering.js recently merged some great accessibility code[1] that improves UX for screen readers by adding ARIA attributes. Each targeted element is given an aria-label with the…",{"value":125,"source":71,"evidence":126},"Fix IE6 logo number size",[127],{"id":128,"by":129,"text":130},"8133079","owenversteeg","You may want to change the size of the 6 on the IE6 logo. I had to copy and paste it into a new tab to tell what number it was.",[132,136],{"value":133,"source":71,"evidence":134},"How does it compare to Unicode UAX #29 boundary algorithms?",[135],{"id":98,"by":99,"text":100},{"value":137,"source":71,"evidence":138},"How does it compare to Lettering.js?",[139],{"id":140,"by":141,"text":142},"8133013","cursed","Big fan of your Velocity.JS, Julian. How does Blast.JS compare to Lettering.JS? (http:\u002F\u002Fletteringjs.com\u002F) Edit: It's been awhile since I've looked at Lettering, but to answer my…",[144,149],{"value":145,"source":71,"evidence":146},"Lettering.js",[147,148],{"id":140,"by":141,"text":142},{"id":121,"by":122,"text":123},{"value":150,"source":71,"evidence":151},"Font Bomb",[152],{"id":153,"by":154,"text":155},"8132940","nobodysfool","I prefer Font Bomb http:\u002F\u002Ffontbomb.ilex.ca\u002F",{"comments":44,"answered":33,"key":157},[158,161,164],{"id":159,"text":160},"8134101","Absolutely. Fantastic suggestion. It's on my to-do list now. Thank you.",{"id":162,"text":163},"8133434","I'm about to start using Ember, and I can't wait to dive into liquid-fire. Thank you so much for putting this together, Edward. As for micro-typographic rules: You'll find that a…",{"id":54,"text":55},{"commenters":166,"max_depth":44,"maker_replies":44,"first_comment_mins":167,"lifespan_hours":168},14,55,6,[170,172,174,176,178,180,182,183,185,186,188,191,192,195,197,199,201,202,203],[62,34,34,171,63,34],"other\u002Fneutral\u002Fnone",[98,39,39,173,99,34],"project\u002Fcritical\u002Fdocs",[121,33,35,175,122,34],"maker\u002Fneutral\u002Fnone",[159,33,34,177,11,39],"maker\u002Fpositive\u002Fnone",[179,33,44,177,122,34],"8134179",[82,35,44,181,83,34],"project\u002Fpositive\u002Fidea",[162,35,34,181,11,39],[140,32,35,184,141,34],"project\u002Fneutral\u002Fidea",[54,32,34,181,11,39],[89,44,39,187,90,34],"project\u002Fcritical\u002Fexecution",[189,44,34,190,11,39],"8133757","maker\u002Fneutral\u002Fexecution",[74,168,44,181,75,34],[128,193,39,194,129,34],7,"project\u002Fcritical\u002Fdesign",[78,196,44,181,79,34],8,[153,36,34,198,154,34],"commenter\u002Fneutral\u002Fidea",[200,36,34,198,11,39],"8132955",[109,36,34,171,110,34],[113,36,34,171,114,34],[204,36,34,171,205,34],"8133663","pan69",[],[208,213,217,222,226,230],{"id":209,"name":210,"points":211,"category":212},"8130413","carp",212,"dev_tools",{"id":214,"name":215,"points":216,"category":212},"8135967","Slate",192,{"id":218,"name":219,"points":220,"category":221},"8117100","The Deal Truck",132,"web_saas",{"id":223,"name":224,"points":220,"category":225},"8122911","Omive","consumer_social",{"id":227,"name":228,"points":229,"category":212},"8118233","Emacs Mini Manual",130,{"id":231,"name":232,"points":233,"category":225},"8129123","Workfrom",117,false,"v2",{"id":237,"name":5,"line":6,"ai":234,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":30,"top":18,"kw":238,"maker":11,"domain":10,"tier":19,"attempts":34,"strip":239,"url":9,"mix":240,"praise":70,"objection":95,"sub":21},8132599,[24,25,26,27,28],"0130550301051500000",[32,33,34,35],1793990909759]