{"action":"created","issue":{"url":"https://api.github.com/repos/mkdocs/mkdocs/issues/689","labels_url":"https://api.github.com/repos/mkdocs/mkdocs/issues/689/labels{/name}","comments_url":"https://api.github.com/repos/mkdocs/mkdocs/issues/689/comments","events_url":"https://api.github.com/repos/mkdocs/mkdocs/issues/689/events","html_url":"https://github.com/mkdocs/mkdocs/pull/689","id":94258979,"number":689,"title":"Internal refactoring.","user":{"login":"tomchristie","id":647359,"avatar_url":"https://avatars.githubusercontent.com/u/647359?v=3","gravatar_id":"","url":"https://api.github.com/users/tomchristie","html_url":"https://github.com/tomchristie","followers_url":"https://api.github.com/users/tomchristie/followers","following_url":"https://api.github.com/users/tomchristie/following{/other_user}","gists_url":"https://api.github.com/users/tomchristie/gists{/gist_id}","starred_url":"https://api.github.com/users/tomchristie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tomchristie/subscriptions","organizations_url":"https://api.github.com/users/tomchristie/orgs","repos_url":"https://api.github.com/users/tomchristie/repos","events_url":"https://api.github.com/users/tomchristie/events{/privacy}","received_events_url":"https://api.github.com/users/tomchristie/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/mkdocs/mkdocs/labels/Cleanup","name":"Cleanup","color":"207de5"}],"state":"closed","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/mkdocs/mkdocs/milestones/9","html_url":"https://github.com/mkdocs/mkdocs/milestones/0.15.0","labels_url":"https://api.github.com/repos/mkdocs/mkdocs/milestones/9/labels","id":1150035,"number":9,"title":"0.15.0","description":"","creator":{"login":"d0ugal","id":48211,"avatar_url":"https://avatars.githubusercontent.com/u/48211?v=3","gravatar_id":"","url":"https://api.github.com/users/d0ugal","html_url":"https://github.com/d0ugal","followers_url":"https://api.github.com/users/d0ugal/followers","following_url":"https://api.github.com/users/d0ugal/following{/other_user}","gists_url":"https://api.github.com/users/d0ugal/gists{/gist_id}","starred_url":"https://api.github.com/users/d0ugal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/d0ugal/subscriptions","organizations_url":"https://api.github.com/users/d0ugal/orgs","repos_url":"https://api.github.com/users/d0ugal/repos","events_url":"https://api.github.com/users/d0ugal/events{/privacy}","received_events_url":"https://api.github.com/users/d0ugal/received_events","type":"User","site_admin":false},"open_issues":14,"closed_issues":36,"state":"open","created_at":"2015-06-04T19:51:28Z","updated_at":"2015-08-04T22:35:26Z","due_on":null,"closed_at":null},"comments":8,"created_at":"2015-07-10T09:16:19Z","updated_at":"2015-08-04T22:35:26Z","closed_at":"2015-08-04T22:35:26Z","pull_request":{"url":"https://api.github.com/repos/mkdocs/mkdocs/pulls/689","html_url":"https://github.com/mkdocs/mkdocs/pull/689","diff_url":"https://github.com/mkdocs/mkdocs/pull/689.diff","patch_url":"https://github.com/mkdocs/mkdocs/pull/689.patch"},"body":"Builds site in memory.\r\n\r\nPresents a clean internal API, that is more comprehensible, allows us to make improvements more easily, and paves path to fully documented build behaviors and context available to themes.\r\n\r\nIn broader context this is a big step towards #683, but at this point I just want to present a fully compatible internal refactoring that should allow us to sort out a bunch of issues.\r\n\r\nTODO:\r\n\r\n- [x] Set `page.url` and `nav.is_active` states on each page.\r\n- [ ] Build `404.html`, search and other template pages.\r\n- [ ] Support multiple theme directories, as per current build style.\r\n- [ ] Support `use_directory_urls`.\r\n- [ ] Support `extra_css`, `extra_javascript`, `extra_templates`.\r\n- [ ] Review #77, particularly search URLs, and anywhere `abs_url` is used. \r\n- [ ] Warn on duplicate output files in build.\r\n- [ ] print statements -> warn/error.\r\n- [ ] Tests, tests, tests.\r\n- [ ] Cleanup unused bits in `utils`.\r\n- [ ] Verify identical site build before/after this change.\r\n- [ ] Document internal structure.\r\n- [ ] Build but warn on .md files not in `pages`.\r\n- [ ] Ensure markdown extensions in config are supported.\r\n- [ ] OrderedDict for yaml loading of config.\r\n\r\nResolves: \r\n#653 - Relative paths to media sometimes broken.\r\n#316 - Determine default titles from page table of contents.\r\n#192 - Allow absolute URL links in source pages.\r\n#608 - Allow README.md or others as homepage.\r\n\r\nMakes these viable:\r\n#658 - Validate links to anchors.\r\n#167 - Only warn on properly stale files in site dir.\r\n#699 - Build all markdown files.\r\nNo ticket - Support HTML files in nav.\r\nNo ticket - Support alternate layout eg `/path/to/file.html` vs `path/to/file/index.html`."},"comment":{"url":"https://api.github.com/repos/mkdocs/mkdocs/issues/comments/127780912","html_url":"https://github.com/mkdocs/mkdocs/pull/689#issuecomment-127780912","issue_url":"https://api.github.com/repos/mkdocs/mkdocs/issues/689","id":127780912,"user":{"login":"tomchristie","id":647359,"avatar_url":"https://avatars.githubusercontent.com/u/647359?v=3","gravatar_id":"","url":"https://api.github.com/users/tomchristie","html_url":"https://github.com/tomchristie","followers_url":"https://api.github.com/users/tomchristie/followers","following_url":"https://api.github.com/users/tomchristie/following{/other_user}","gists_url":"https://api.github.com/users/tomchristie/gists{/gist_id}","starred_url":"https://api.github.com/users/tomchristie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tomchristie/subscriptions","organizations_url":"https://api.github.com/users/tomchristie/orgs","repos_url":"https://api.github.com/users/tomchristie/repos","events_url":"https://api.github.com/users/tomchristie/events{/privacy}","received_events_url":"https://api.github.com/users/tomchristie/received_events","type":"User","site_admin":false},"created_at":"2015-08-04T22:35:26Z","updated_at":"2015-08-04T22:35:26Z","body":"> If we call the next release 1.0, then I am happy to break things so long as we provide users with clear docs to upgrade. I wouldn't be happy about a 0.15.0 release breaking all the things.\r\n\r\nMy preference would be to work on a 1.0 release that provides an easy upgrade path for users of the existing themes.\r\n"}}