[{"data":1,"prerenderedAt":329},["ShallowReactive",2],{"project-1125315":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":28,"sentiment":29,"stance_mix":30,"scored_comments":33,"aspects":34,"strip":41,"post_text":43,"what":44,"said":80,"maker_in_thread":180,"shape":187,"grid":190,"attempts":294,"same_week":295,"maker_shows":38,"maker_hidden":321,"reader_version":322,"card":323},"1125315","softhyphen","My project for this weekend (with source)","title","Show HN: My project for this weekend (with source)","http:\u002F\u002Fwww.softhyphen.com\u002F","softhyphen.com","fortes",1266183186,2010,120,39,7,370,2,"notable","dev_tools","html text formatting","web_app",[24,25,26,27],"soft hyphens","html hyphenation","justified text","css typography","debated",-0.047,{"positive":16,"neutral":31,"mixed":18,"critical":32},5,8,22,{"execution":35,"design":36,"idea":39,"docs":40},{"positive":18,"critical":31},{"positive":37,"critical":38},0,1,{"positive":31,"critical":38},{"positive":37,"critical":38},[37,38,37,37,42,42,37,37,42,42,31,37,31,31,38,38,42,31,37,37,31,38,37,42,38,37,31,42,38,31,38,38,37,37,37,37,37,37,37],3,null,{"problem":45,"audience":52,"pricing":43,"motivation":56,"time_to_build":60,"stack":64,"openness":77,"stage":78,"team_size":79},{"value":46,"source":47,"evidence":48},"Browsers don't hyphenate text, so justified text leaves ugly whitespace rivers.","maker",[49],{"id":50,"by":11,"text":51},"1125328","I work with a lot of online publishing clients, who aren't always particularly tech savvy (you'd be amazed by some of the workflows). Designers would often like to justify text,…",{"value":53,"source":47,"evidence":54},"Online publishing clients and designers who justify text on the web.",[55],{"id":50,"by":11,"text":51},{"value":57,"source":47,"evidence":58},"Manually adding soft hyphens for clients was tedious.",[59],{"id":50,"by":11,"text":51},{"value":61,"source":47,"evidence":62},"About a day.",[63],{"id":50,"by":11,"text":51},[65,69,73],{"value":66,"source":47,"evidence":67},"Python",[68],{"id":50,"by":11,"text":51},{"value":70,"source":47,"evidence":71},"Google App Engine",[72],{"id":50,"by":11,"text":51},{"value":74,"source":47,"evidence":75},"OpenOffice hyphenation dictionaries",[76],{"id":50,"by":11,"text":51},"open_source","launched","solo",{"praise":81,"objections":109,"requests":128,"questions":147,"alternatives":159},[82,98],{"value":83,"source":84,"evidence":85},"Neat project and well written; nice code on GitHub.","commenter",[86,90,94],{"id":87,"by":88,"text":89},"1125513","voidpointer","Nice. I didn't realize today's HTML implementations were handling soft hyphens. When I last tried that it didn't work, but that was a long time ago.",{"id":91,"by":92,"text":93},"1125948","yannis","When I started out in Computers over 25 years ago, I got very interested in TeX and LaTeX and read a lot of the literature. One item that impressed me at the time - and still…",{"id":95,"by":96,"text":97},"1125793","tmsh","nicely done (looks like nice code on github). there's another python implementation of frank liang's hyphenation here, fyi. http:\u002F\u002Fnedbatchelder.com\u002Fcode\u002Fmodules\u002Fhyphenate.html…",{"value":99,"source":84,"evidence":100},"Idea of a WordPress plugin or JS library is useful.",[101,105],{"id":102,"by":103,"text":104},"1125450","callmeed","This is pretty cool. My suggestion: create a simple API and a WordPress plugin. I think it would be handy for a lot of WP-powered sites and that would make it easier for people…",{"id":106,"by":107,"text":108},"1125892","mortenjorck","Actually, I think there's still room for a WP plugin based on your project. I've tried WP-Typography before, and while I love KingDesk's intentions, I didn't like the complexity…",[110,120],{"value":111,"source":84,"evidence":112},"Browser soft hyphen support is buggy and can eat text.",[113,117],{"id":114,"by":115,"text":116},"1125986","jacobolus","This is neat. Some possible drawbacks: (1) Browser layout engines are pretty messed up, and adding a bunch of shy hyphens can lead to really weird layout issues. I wish I had…",{"id":118,"by":115,"text":119},"1125988","They sort-of work. It’s far from perfect. Do your own testing before you rely on browsers.",{"value":121,"source":84,"evidence":122},"Soft hyphens hurt source readability and may affect SEO and search.",[123,127],{"id":124,"by":125,"text":126},"1125537","chaosmachine","Cool project. Not your fault, but all these soft hyphens really destroy source readability. I also wonder if this could cause keyword\u002Fseo problems.",{"id":114,"by":115,"text":116},[129,136,143],{"value":130,"source":84,"evidence":131},"Show the user's own text hyphenated next to unhyphenated version.",[132],{"id":133,"by":134,"text":135},"1125549","tb","It'd be good if after you entered some text, the sample at the bottom showed the text you entered un-hyphenated and hyphenated for easy comparison, rather than keeping the…",{"value":137,"source":84,"evidence":138},"Resizable div to preview text reflow.",[139],{"id":140,"by":141,"text":142},"1126026","m_eiman","Even better would be a resizable div that the user can drag around to see how the text reflows.",{"value":144,"source":84,"evidence":145},"Provide a WordPress plugin or API.",[146],{"id":102,"by":103,"text":104},[148],{"value":149,"source":84,"evidence":150},"Do search engines handle soft hyphens correctly?",[151,155],{"id":152,"by":153,"text":154},"1125572","romland","Absolutely a valid concern. I can imagine there are plenty of (non-global) search-engines out there that trip over this issue (in fact, now that I think about it, I don't think I…",{"id":156,"by":157,"text":158},"1125655","zackattack","First off, kickass site, very impressive that you did this, let alone over the weekend. I look forward to browsing through the source. OK, so general SEO question. Do search…",[160,170,176],{"value":161,"source":84,"evidence":162},"Hyphenator JavaScript library.",[163,167],{"id":164,"by":165,"text":166},"1125448","kes","A Javascript project that does this - http:\u002F\u002Fcode.google.com\u002Fp\u002Fhyphenator\u002F - with an example -http:\u002F\u002Fj.mp\u002FbakUUw A relavant Reddit thread - http:\u002F\u002Fj.mp\u002Fd8H3Tf",{"id":168,"by":115,"text":169},"1125992","It’s not exactly an unresearched problem. Here’s from 1983: http:\u002F\u002Fwww.tug.org\u002Fdocs\u002Fliang\u002F Here’s a javascript version: http:\u002F\u002Fcode.google.com\u002Fp\u002Fhyphenator\u002F",{"value":171,"source":47,"evidence":172},"WP-Hyphenate WordPress plugin.",[173],{"id":174,"by":11,"text":175},"1125648","Good idea! I was just about to start it, and decided to do a search in case someone had something similar. This plugin looks pretty good, actually:…",{"value":177,"source":84,"evidence":178},"Nedbatchelder Python hyphenate module.",[179],{"id":95,"by":96,"text":97},{"comments":31,"answered":37,"key":181},[182,183,186],{"id":50,"text":51},{"id":184,"text":185},"1125646","I had that originally, but was worried paranoid about XSS attacks (needlessly?). Will re-enable this week.",{"id":174,"text":175},{"commenters":188,"max_depth":31,"maker_replies":31,"first_comment_mins":31,"lifespan_hours":189},28,66,[191,193,195,199,201,205,207,209,213,214,216,218,219,220,222,223,224,226,227,231,233,237,241,243,247,252,254,257,261,265,267,272,277,279,282,284,287,290,293],[50,37,37,192,11,38],"project\u002Fneutral\u002Fidea",[114,37,38,194,115,37],"project\u002Fcritical\u002Fexecution",[196,37,37,197,198,37],"1126190","other\u002Fneutral\u002Fnone","est",[200,37,37,197,115,37],"1131624",[202,37,42,203,204,37],"1126413","project\u002Fmixed\u002Fdesign","antileet",[133,38,42,206,134,37],"project\u002Fneutral\u002Fdesign",[184,38,37,208,11,38],"maker\u002Fneutral\u002Fnone",[210,38,37,211,212,37],"1125769","commenter\u002Fneutral\u002Fprivacy","jfarmer",[140,38,42,206,141,37],[164,18,42,215,165,37],"project\u002Fneutral\u002Fnone",[102,42,31,217,103,37],"project\u002Fpositive\u002Fidea",[174,42,37,208,11,38],[106,42,31,217,107,37],[87,221,31,217,88,37],4,[118,221,38,194,115,37],[124,31,38,194,125,37],[152,31,42,225,153,37],"project\u002Fneutral\u002Fexecution",[156,31,31,217,157,37],[228,31,37,229,230,37],"1125778","commenter\u002Fneutral\u002Fnone","JimmyL",[232,31,37,229,157,37],"1126126",[234,235,31,217,236,37],"1125612",6,"mc",[238,16,38,239,240,37],"1125667","maker\u002Fcritical\u002Fexecution","jdunck",[242,16,37,208,11,38],"1125744",[244,32,42,245,246,37],"1125737","project\u002Fmixed\u002Fexecution","scorxn",[248,249,38,250,251,37],"1125657",9,"project\u002Fcritical\u002Fdesign","prgmatic",[253,249,37,208,11,38],"1125750",[91,255,31,256,92,37],10,"project\u002Fpositive\u002Fexecution",[258,259,42,215,260,37],"1126025",11,"imd",[262,263,38,194,264,37],"1126085",12,"aw3c2",[95,266,31,256,96,37],13,[268,269,38,270,271,37],"1126047",14,"project\u002Fcritical\u002Fdocs","asmosoinio",[273,274,38,275,276,37],"1125577",15,"project\u002Fcritical\u002Fidea","winter_blue",[278,274,37,229,153,37],"1125587",[280,274,37,197,281,37],"1125632","mcgroob",[283,274,37,197,153,37],"1125633",[285,274,37,197,286,37],"1125634","palish",[288,274,37,197,289,37],"1125645","whatusername",[291,274,37,292,236,37],"1125621","commenter\u002Fneutral\u002Fidea",[168,274,37,197,115,37],[],[296,301,306,311,315,318],{"id":297,"name":298,"points":299,"category":300},"1127654","Ajax IM",95,"productivity",{"id":302,"name":303,"points":304,"category":305},"1125408","txt2ping",57,"infrastructure",{"id":307,"name":308,"points":309,"category":310},"1125422","My Weekend Project",18,"consumer_social",{"id":312,"name":313,"points":31,"category":314},"1125636","flickr.com","other",{"id":316,"name":317,"points":31,"category":314},"1132253","Interview Engine",{"id":319,"name":320,"points":221,"category":310},"1126765","SMS My TV Show",false,"v2",{"id":324,"name":5,"line":6,"ai":321,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":325,"top":18,"kw":326,"maker":11,"domain":10,"tier":19,"attempts":37,"strip":327,"url":9,"mix":328,"praise":83,"objection":111,"sub":21},1125315,-0.05,[24,25,26,27],"010033003350551135005103105315110000000",[16,31,18,32],1793990866785]