{"action":"created","comment":{"url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/pulls/comments/64090642","id":64090642,"diff_hunk":"@@ -0,0 +1,69 @@\n+---\n+title: TyXML 4.0.0\n+layout: default\n+author: The Ocsigen Team\n+authorurl: https://ocsigen.org\n+---\n+\n+This is with great pleasure that we are announcing the release of [TyXML 4.0.0][changelog]. This new version is focused on improving the user experience, both for old and new TyXML users.\n+\n+[changelog]: https://github.com/ocsigen/tyxml/releases/tag/4.0.0\n+\n+## What is TyXML ?\n+\n+TyXML is a library for building statically correct HTML5 and SVG documents.\n+It provides a set of combinators which use the OCaml type system to ensure the validity of the generated document. TyXML's combinators can be used to build textual HTML and SVG, but also DOM trees or reactive interfaces, using [Eliom][] and [Js_of_ocaml][].\n+\n+[Eliom]: https://ocsigen.org/eliom/manual/clientserver-html\n+[Js_of_ocaml]: https://ocsigen.org/js_of_ocaml/api/Tyxml_js\n+\n+## New TyXML manual and improved documentation\n+\n+A new TyXML manual is now available [here][manual]. Documentation was also improved in the various TyXML modules. Do not hesitate to provide feedback on [our bug tracker][bugtracker]!\n+\n+[manual]: https://ocsigen.org/tyxml/4.0/manual/intro\n+[bugtracker]: https://github.com/ocsigen/tyxml/issues\n+\n+## HTML syntax with the new PPX\n+\n+It is now possible to use the standard HTML syntax:\n+\n+{% highlight ocaml %}\n+open Tyxml\n+let%html to_ocaml = \"<a href='ocaml.org'>OCaml!</a>\"\n+{% endhighlight %}\n+\n+It supports insertion of ocaml code inside the HTML and can be used with all the TyXML modules (such as [Js_of_ocaml][] and [Eliom][]) and with SVG. A complete overview can be found [in the manual][ppx_manual].\n+\n+[ppx_manual]: https://ocsigen.org/tyxml/4.0/manual/ppx\n+\n+This new PPX leverage the (awesome) [markup][] library and was contributed by [Anton Bachin](https://github.com/aantron).\n+\n+[markup]: https://github.com/aantron/markup.ml\n+\n+## Others\n+\n+* Toplevel printers are now available for the base HTML and SVG implementations:\n+{% highlight ocaml %}\n+# Tyxml.Html.(div [pcdata \"Oh!\"]) ;;\n+- : [> `Div ] Tyxml.Html.elt = <div>Oh!</div>\n+{% endhighlight %}\n+\n+* The HTML and SVG combinators have received numerous improvements to make them more consistent and easier to use. This means that several modules and functions have been renamed and some types have been changed, which break compatibility with previous TyXML versions.\n+\n+* An healthy amount of new element and attributes.\n+\n+* The full changelog is available [here][changelog].\n+\n+## Compatibility\n+\n+This new version breaks compatibility. Compatible versions of `js_of_ocaml` and Eliom are available in their respective `master` branches.","path":"_posts/2016-05-20-tyxml4.md","position":60,"original_position":60,"commit_id":"35a8039095a355a84aee0cfa8f79a28682b11a54","original_commit_id":"35a8039095a355a84aee0cfa8f79a28682b11a54","user":{"login":"Drup","id":801124,"avatar_url":"https://avatars.githubusercontent.com/u/801124?v=3","gravatar_id":"","url":"https://api.github.com/users/Drup","html_url":"https://github.com/Drup","followers_url":"https://api.github.com/users/Drup/followers","following_url":"https://api.github.com/users/Drup/following{/other_user}","gists_url":"https://api.github.com/users/Drup/gists{/gist_id}","starred_url":"https://api.github.com/users/Drup/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Drup/subscriptions","organizations_url":"https://api.github.com/users/Drup/orgs","repos_url":"https://api.github.com/users/Drup/repos","events_url":"https://api.github.com/users/Drup/events{/privacy}","received_events_url":"https://api.github.com/users/Drup/received_events","type":"User","site_admin":false},"body":"Well, it breaks compat with everything. :3","created_at":"2016-05-20T18:54:55Z","updated_at":"2016-05-20T18:54:55Z","html_url":"https://github.com/ocsigen/ocsigen.github.io/pull/5#discussion_r64090642","pull_request_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/pulls/5","_links":{"self":{"href":"https://api.github.com/repos/ocsigen/ocsigen.github.io/pulls/comments/64090642"},"html":{"href":"https://github.com/ocsigen/ocsigen.github.io/pull/5#discussion_r64090642"},"pull_request":{"href":"https://api.github.com/repos/ocsigen/ocsigen.github.io/pulls/5"}}},"pull_request":{"url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/pulls/5","id":70894196,"html_url":"https://github.com/ocsigen/ocsigen.github.io/pull/5","diff_url":"https://github.com/ocsigen/ocsigen.github.io/pull/5.diff","patch_url":"https://github.com/ocsigen/ocsigen.github.io/pull/5.patch","issue_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/issues/5","number":5,"state":"open","locked":false,"title":"Tyxml 4 anouncement.","user":{"login":"Drup","id":801124,"avatar_url":"https://avatars.githubusercontent.com/u/801124?v=3","gravatar_id":"","url":"https://api.github.com/users/Drup","html_url":"https://github.com/Drup","followers_url":"https://api.github.com/users/Drup/followers","following_url":"https://api.github.com/users/Drup/following{/other_user}","gists_url":"https://api.github.com/users/Drup/gists{/gist_id}","starred_url":"https://api.github.com/users/Drup/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Drup/subscriptions","organizations_url":"https://api.github.com/users/Drup/orgs","repos_url":"https://api.github.com/users/Drup/repos","events_url":"https://api.github.com/users/Drup/events{/privacy}","received_events_url":"https://api.github.com/users/Drup/received_events","type":"User","site_admin":false},"body":"Please review for typos&co. :)","created_at":"2016-05-20T18:03:23Z","updated_at":"2016-05-20T18:54:55Z","closed_at":null,"merged_at":null,"merge_commit_sha":"0856ec0f22b750a14f8679e97bf6e8a4ef323798","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/pulls/5/commits","review_comments_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/pulls/5/comments","review_comment_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/issues/5/comments","statuses_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/statuses/35a8039095a355a84aee0cfa8f79a28682b11a54","head":{"label":"ocsigen:tyxml","ref":"tyxml","sha":"35a8039095a355a84aee0cfa8f79a28682b11a54","user":{"login":"ocsigen","id":4729424,"avatar_url":"https://avatars.githubusercontent.com/u/4729424?v=3","gravatar_id":"","url":"https://api.github.com/users/ocsigen","html_url":"https://github.com/ocsigen","followers_url":"https://api.github.com/users/ocsigen/followers","following_url":"https://api.github.com/users/ocsigen/following{/other_user}","gists_url":"https://api.github.com/users/ocsigen/gists{/gist_id}","starred_url":"https://api.github.com/users/ocsigen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ocsigen/subscriptions","organizations_url":"https://api.github.com/users/ocsigen/orgs","repos_url":"https://api.github.com/users/ocsigen/repos","events_url":"https://api.github.com/users/ocsigen/events{/privacy}","received_events_url":"https://api.github.com/users/ocsigen/received_events","type":"Organization","site_admin":false},"repo":{"id":39837434,"name":"ocsigen.github.io","full_name":"ocsigen/ocsigen.github.io","owner":{"login":"ocsigen","id":4729424,"avatar_url":"https://avatars.githubusercontent.com/u/4729424?v=3","gravatar_id":"","url":"https://api.github.com/users/ocsigen","html_url":"https://github.com/ocsigen","followers_url":"https://api.github.com/users/ocsigen/followers","following_url":"https://api.github.com/users/ocsigen/following{/other_user}","gists_url":"https://api.github.com/users/ocsigen/gists{/gist_id}","starred_url":"https://api.github.com/users/ocsigen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ocsigen/subscriptions","organizations_url":"https://api.github.com/users/ocsigen/orgs","repos_url":"https://api.github.com/users/ocsigen/repos","events_url":"https://api.github.com/users/ocsigen/events{/privacy}","received_events_url":"https://api.github.com/users/ocsigen/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ocsigen/ocsigen.github.io","description":"Ocsigen Blog","fork":false,"url":"https://api.github.com/repos/ocsigen/ocsigen.github.io","forks_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/forks","keys_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/teams","hooks_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/hooks","issue_events_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/issues/events{/number}","events_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/events","assignees_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/assignees{/user}","branches_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/branches{/branch}","tags_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/tags","blobs_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/git/refs{/sha}","trees_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/statuses/{sha}","languages_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/languages","stargazers_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/stargazers","contributors_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/contributors","subscribers_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/subscribers","subscription_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/subscription","commits_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/commits{/sha}","git_commits_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/git/commits{/sha}","comments_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/comments{/number}","issue_comment_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/issues/comments{/number}","contents_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/contents/{+path}","compare_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/merges","archive_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/downloads","issues_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/issues{/number}","pulls_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/pulls{/number}","milestones_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/milestones{/number}","notifications_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/labels{/name}","releases_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/releases{/id}","deployments_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/deployments","created_at":"2015-07-28T14:05:57Z","updated_at":"2016-01-29T14:12:50Z","pushed_at":"2016-05-20T18:30:46Z","git_url":"git://github.com/ocsigen/ocsigen.github.io.git","ssh_url":"git@github.com:ocsigen/ocsigen.github.io.git","clone_url":"https://github.com/ocsigen/ocsigen.github.io.git","svn_url":"https://github.com/ocsigen/ocsigen.github.io","homepage":"https://ocsigen.github.io/blog/","size":99,"stargazers_count":1,"watchers_count":1,"language":"HTML","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":1,"mirror_url":null,"open_issues_count":3,"forks":1,"open_issues":3,"watchers":1,"default_branch":"master"}},"base":{"label":"ocsigen:master","ref":"master","sha":"f5c04f08a65bda2bfaeeecb30ef10859d1220425","user":{"login":"ocsigen","id":4729424,"avatar_url":"https://avatars.githubusercontent.com/u/4729424?v=3","gravatar_id":"","url":"https://api.github.com/users/ocsigen","html_url":"https://github.com/ocsigen","followers_url":"https://api.github.com/users/ocsigen/followers","following_url":"https://api.github.com/users/ocsigen/following{/other_user}","gists_url":"https://api.github.com/users/ocsigen/gists{/gist_id}","starred_url":"https://api.github.com/users/ocsigen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ocsigen/subscriptions","organizations_url":"https://api.github.com/users/ocsigen/orgs","repos_url":"https://api.github.com/users/ocsigen/repos","events_url":"https://api.github.com/users/ocsigen/events{/privacy}","received_events_url":"https://api.github.com/users/ocsigen/received_events","type":"Organization","site_admin":false},"repo":{"id":39837434,"name":"ocsigen.github.io","full_name":"ocsigen/ocsigen.github.io","owner":{"login":"ocsigen","id":4729424,"avatar_url":"https://avatars.githubusercontent.com/u/4729424?v=3","gravatar_id":"","url":"https://api.github.com/users/ocsigen","html_url":"https://github.com/ocsigen","followers_url":"https://api.github.com/users/ocsigen/followers","following_url":"https://api.github.com/users/ocsigen/following{/other_user}","gists_url":"https://api.github.com/users/ocsigen/gists{/gist_id}","starred_url":"https://api.github.com/users/ocsigen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ocsigen/subscriptions","organizations_url":"https://api.github.com/users/ocsigen/orgs","repos_url":"https://api.github.com/users/ocsigen/repos","events_url":"https://api.github.com/users/ocsigen/events{/privacy}","received_events_url":"https://api.github.com/users/ocsigen/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ocsigen/ocsigen.github.io","description":"Ocsigen Blog","fork":false,"url":"https://api.github.com/repos/ocsigen/ocsigen.github.io","forks_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/forks","keys_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/teams","hooks_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/hooks","issue_events_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/issues/events{/number}","events_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/events","assignees_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/assignees{/user}","branches_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/branches{/branch}","tags_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/tags","blobs_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/git/refs{/sha}","trees_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/statuses/{sha}","languages_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/languages","stargazers_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/stargazers","contributors_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/contributors","subscribers_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/subscribers","subscription_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/subscription","commits_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/commits{/sha}","git_commits_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/git/commits{/sha}","comments_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/comments{/number}","issue_comment_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/issues/comments{/number}","contents_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/contents/{+path}","compare_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/merges","archive_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/downloads","issues_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/issues{/number}","pulls_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/pulls{/number}","milestones_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/milestones{/number}","notifications_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/labels{/name}","releases_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/releases{/id}","deployments_url":"https://api.github.com/repos/ocsigen/ocsigen.github.io/deployments","created_at":"2015-07-28T14:05:57Z","updated_at":"2016-01-29T14:12:50Z","pushed_at":"2016-05-20T18:30:46Z","git_url":"git://github.com/ocsigen/ocsigen.github.io.git","ssh_url":"git@github.com:ocsigen/ocsigen.github.io.git","clone_url":"https://github.com/ocsigen/ocsigen.github.io.git","svn_url":"https://github.com/ocsigen/ocsigen.github.io","homepage":"https://ocsigen.github.io/blog/","size":99,"stargazers_count":1,"watchers_count":1,"language":"HTML","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":1,"mirror_url":null,"open_issues_count":3,"forks":1,"open_issues":3,"watchers":1,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ocsigen/ocsigen.github.io/pulls/5"},"html":{"href":"https://github.com/ocsigen/ocsigen.github.io/pull/5"},"issue":{"href":"https://api.github.com/repos/ocsigen/ocsigen.github.io/issues/5"},"comments":{"href":"https://api.github.com/repos/ocsigen/ocsigen.github.io/issues/5/comments"},"review_comments":{"href":"https://api.github.com/repos/ocsigen/ocsigen.github.io/pulls/5/comments"},"review_comment":{"href":"https://api.github.com/repos/ocsigen/ocsigen.github.io/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ocsigen/ocsigen.github.io/pulls/5/commits"},"statuses":{"href":"https://api.github.com/repos/ocsigen/ocsigen.github.io/statuses/35a8039095a355a84aee0cfa8f79a28682b11a54"}}}}
{"actor":{"display_login":"Drup"}}