{"action":"created","comment":{"url":"https://api.github.com/repos/divio/django-cms/pulls/comments/158963299","pull_request_review_id":85842410,"id":158963299,"diff_hunk":"@@ -153,36 +153,38 @@ Many of the methods below pass this list of nodes to the ones it calls, and retu\n \n Don't forget that show_menu recurses - so it will do *all* of the below for *each level* in the menu.\n \n-* ``{% show_menu %}`` - the template tag in the template\n-    * :py:meth:`menus.templatetags.menu_tags.ShowMenu.get_context()`\n-        * :py:meth:`menus.menu_pool.MenuPool.get_nodes()`\n-            * :py:meth:`menus.menu_pool.MenuPool.discover_menus()` checks every application's ``cms_menus.py``, and registers:\n-                * Menu classes, placing them in the ``self.menus`` dict\n-                * Modifier classes, placing them in the self.modifiers list\n-            * :py:meth:`menus.menu_pool.MenuPool._build_nodes()`\n-                * checks the cache to see if it should return cached nodes\n-                * loops over the Menus in self.menus (note: by default the only generator is :py:class:`cms.menu.CMSMenu`); for each:\n-                    * call its :py:meth:`menus.base.Menu.get_nodes()` - the menu generator\n-                    * :py:func:`menus.menu_pool._build_nodes_inner_for_one_menu()`\n-                    * adds all nodes into a big list\n-            * :py:meth:`menus.menu_pool.MenuPool.apply_modifiers()`\n-                * :py:meth:`menus.menu_pool.MenuPool._mark_selected()`\n-                * loops over each node, comparing its URL with the request.path_info, and marks the best match as ``selected``\n-                * loops over the Modifiers in ``self.modifiers`` calling each one's :py:meth:`~menus.base.Modifier.modify()` with ``post_cut=False``. The default Modifiers are:\n-                    * :py:class:`cms.menu.NavExtender`\n-                    * :py:class:`cms.menu.SoftRootCutter` removes all nodes below the appropriate soft root\n-                    * :py:class:`menus.modifiers.Marker` loops over all nodes; finds selected, marks its ancestors, siblings and children\n-                    * :py:class:`menus.modifiers.AuthVisibility` removes nodes that require authorisation to see\n-                    * :py:class:`menus.modifiers.Level` loops over all nodes; for each one that is a root node (``level == 0``) passes it to:\n-                        * :py:meth:`~menus.modifiers.Level.mark_levels()` recurses over a node's descendants marking their levels\n-        * we're now back in :py:meth:`menus.templatetags.menu_tags.ShowMenu.get_context()` again\n-        * if we have been provided a root_id, get rid of any nodes other than its descendants\n-        * :py:meth:`menus.templatetags.menu_tags.cut_levels()` removes nodes from the menu according to the arguments provided by the template tag\n-        * :py:meth:`menus.menu_pool.MenuPool.apply_modifiers()` with ``post_cut = True`` loops over all the Modifiers again\n-            * :py:class:`cms.menu.NavExtender`\n-            * :py:class:`cms.menu.SoftRootCutter`\n-            * :py:class:`menus.modifiers.Marker`\n-            * :py:class:`menus.modifiers.AuthVisibility`\n-            * :py:class:`menus.modifiers.Level`:\n-                * :py:meth:`menus.modifiers.Level.mark_levels()`\n-        * return the nodes to the context in the variable ``children``\n+.. |_| unicode:: 0xA0 0xA0 0xA0","path":"docs/topics/menu_system.rst","position":37,"original_position":37,"commit_id":"2bdc091ee6c465d52099c0fce28d79623fba99af","original_commit_id":"60e3426e5d7b019e09acb087e19658325b653324","user":{"login":"evildmp","id":86222,"avatar_url":"https://avatars3.githubusercontent.com/u/86222?v=4","gravatar_id":"","url":"https://api.github.com/users/evildmp","html_url":"https://github.com/evildmp","followers_url":"https://api.github.com/users/evildmp/followers","following_url":"https://api.github.com/users/evildmp/following{/other_user}","gists_url":"https://api.github.com/users/evildmp/gists{/gist_id}","starred_url":"https://api.github.com/users/evildmp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/evildmp/subscriptions","organizations_url":"https://api.github.com/users/evildmp/orgs","repos_url":"https://api.github.com/users/evildmp/repos","events_url":"https://api.github.com/users/evildmp/events{/privacy}","received_events_url":"https://api.github.com/users/evildmp/received_events","type":"User","site_admin":false},"body":"@fp4code I feel the nesting is necessary, because the levels of nesting represent the logic of the system. It's true that it doesn't look good in the PDF version, but on the other hand, far more people will use the HTML, which is more important.\r\n\r\nWhat is the maximum level of nesting that the PDF renditions can handle? It may be possible to break apart the monolithic list into smaller, shallower ones.","created_at":"2017-12-28T16:00:14Z","updated_at":"2017-12-28T16:00:14Z","html_url":"https://github.com/divio/django-cms/pull/6176#discussion_r158963299","pull_request_url":"https://api.github.com/repos/divio/django-cms/pulls/6176","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/divio/django-cms/pulls/comments/158963299"},"html":{"href":"https://github.com/divio/django-cms/pull/6176#discussion_r158963299"},"pull_request":{"href":"https://api.github.com/repos/divio/django-cms/pulls/6176"}},"in_reply_to_id":157510258},"pull_request":{"url":"https://api.github.com/repos/divio/django-cms/pulls/6176","id":157559193,"html_url":"https://github.com/divio/django-cms/pull/6176","diff_url":"https://github.com/divio/django-cms/pull/6176.diff","patch_url":"https://github.com/divio/django-cms/pull/6176.patch","issue_url":"https://api.github.com/repos/divio/django-cms/issues/6176","number":6176,"state":"open","locked":false,"title":"Solved PDF documentation issues","user":{"login":"fp4code","id":359819,"avatar_url":"https://avatars3.githubusercontent.com/u/359819?v=4","gravatar_id":"","url":"https://api.github.com/users/fp4code","html_url":"https://github.com/fp4code","followers_url":"https://api.github.com/users/fp4code/followers","following_url":"https://api.github.com/users/fp4code/following{/other_user}","gists_url":"https://api.github.com/users/fp4code/gists{/gist_id}","starred_url":"https://api.github.com/users/fp4code/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fp4code/subscriptions","organizations_url":"https://api.github.com/users/fp4code/orgs","repos_url":"https://api.github.com/users/fp4code/repos","events_url":"https://api.github.com/users/fp4code/events{/privacy}","received_events_url":"https://api.github.com/users/fp4code/received_events","type":"User","site_admin":false},"body":"### Summary\r\n\r\nSolved three PDF documentation issues\r\n\r\nThe three corresponding errors were logged in http://m.discodop.readthedocs.io/projects/django-cms/builds/6379857/:\r\n\r\n#### 1st issue\r\n\r\n    ! Package inputenc Error: Unicode char ⨯ (U+2A2F)\r\n    (inputenc)                not set up for use with LaTeX.\r\n\r\nSolved by changing character VECTOR OR CROSS PRODUCT by MULTIPLICATION X and\r\nadded ``tex_replacements.append(('✕', r'\\(\\times\\)'))`` to conf.py\r\n\r\n#### 2nd issue\r\n\r\n    ! LaTeX Error: Too deeply nested.\r\n\r\nEnd of file docs/topics/menu_system.rst is rewrited. The style is not perfect, but somewhat better.\r\n\r\n#### 3rd issue\r\n\r\n    l.11736 ...Japanese as \\sphinxquotedblleft{}日本docs/index.rst\r\n                                                  語\\sphinxquotedblright{} ...\r\n\r\nThis is solved by three tex_replacements.append, one for each character. Not very elegant, but that's working.","created_at":"2017-12-11T13:13:06Z","updated_at":"2017-12-28T16:00:14Z","closed_at":null,"merged_at":null,"merge_commit_sha":"729632734118554b394591cb745995762007cc7f","assignee":{"login":"evildmp","id":86222,"avatar_url":"https://avatars3.githubusercontent.com/u/86222?v=4","gravatar_id":"","url":"https://api.github.com/users/evildmp","html_url":"https://github.com/evildmp","followers_url":"https://api.github.com/users/evildmp/followers","following_url":"https://api.github.com/users/evildmp/following{/other_user}","gists_url":"https://api.github.com/users/evildmp/gists{/gist_id}","starred_url":"https://api.github.com/users/evildmp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/evildmp/subscriptions","organizations_url":"https://api.github.com/users/evildmp/orgs","repos_url":"https://api.github.com/users/evildmp/repos","events_url":"https://api.github.com/users/evildmp/events{/privacy}","received_events_url":"https://api.github.com/users/evildmp/received_events","type":"User","site_admin":false},"assignees":[{"login":"evildmp","id":86222,"avatar_url":"https://avatars3.githubusercontent.com/u/86222?v=4","gravatar_id":"","url":"https://api.github.com/users/evildmp","html_url":"https://github.com/evildmp","followers_url":"https://api.github.com/users/evildmp/followers","following_url":"https://api.github.com/users/evildmp/following{/other_user}","gists_url":"https://api.github.com/users/evildmp/gists{/gist_id}","starred_url":"https://api.github.com/users/evildmp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/evildmp/subscriptions","organizations_url":"https://api.github.com/users/evildmp/orgs","repos_url":"https://api.github.com/users/evildmp/repos","events_url":"https://api.github.com/users/evildmp/events{/privacy}","received_events_url":"https://api.github.com/users/evildmp/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"milestone":{"url":"https://api.github.com/repos/divio/django-cms/milestones/55","html_url":"https://github.com/divio/django-cms/milestone/55","labels_url":"https://api.github.com/repos/divio/django-cms/milestones/55/labels","id":2008864,"number":55,"title":"3.4.x","description":"","creator":{"login":"vxsx","id":366813,"avatar_url":"https://avatars3.githubusercontent.com/u/366813?v=4","gravatar_id":"","url":"https://api.github.com/users/vxsx","html_url":"https://github.com/vxsx","followers_url":"https://api.github.com/users/vxsx/followers","following_url":"https://api.github.com/users/vxsx/following{/other_user}","gists_url":"https://api.github.com/users/vxsx/gists{/gist_id}","starred_url":"https://api.github.com/users/vxsx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vxsx/subscriptions","organizations_url":"https://api.github.com/users/vxsx/orgs","repos_url":"https://api.github.com/users/vxsx/repos","events_url":"https://api.github.com/users/vxsx/events{/privacy}","received_events_url":"https://api.github.com/users/vxsx/received_events","type":"User","site_admin":false},"open_issues":23,"closed_issues":138,"state":"open","created_at":"2016-09-16T09:56:34Z","updated_at":"2017-12-27T16:58:29Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/divio/django-cms/pulls/6176/commits","review_comments_url":"https://api.github.com/repos/divio/django-cms/pulls/6176/comments","review_comment_url":"https://api.github.com/repos/divio/django-cms/pulls/comments{/number}","comments_url":"https://api.github.com/repos/divio/django-cms/issues/6176/comments","statuses_url":"https://api.github.com/repos/divio/django-cms/statuses/2bdc091ee6c465d52099c0fce28d79623fba99af","head":{"label":"fp4code:patch_pdf_doc","ref":"patch_pdf_doc","sha":"2bdc091ee6c465d52099c0fce28d79623fba99af","user":{"login":"fp4code","id":359819,"avatar_url":"https://avatars3.githubusercontent.com/u/359819?v=4","gravatar_id":"","url":"https://api.github.com/users/fp4code","html_url":"https://github.com/fp4code","followers_url":"https://api.github.com/users/fp4code/followers","following_url":"https://api.github.com/users/fp4code/following{/other_user}","gists_url":"https://api.github.com/users/fp4code/gists{/gist_id}","starred_url":"https://api.github.com/users/fp4code/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fp4code/subscriptions","organizations_url":"https://api.github.com/users/fp4code/orgs","repos_url":"https://api.github.com/users/fp4code/repos","events_url":"https://api.github.com/users/fp4code/events{/privacy}","received_events_url":"https://api.github.com/users/fp4code/received_events","type":"User","site_admin":false},"repo":{"id":98540225,"name":"django-cms","full_name":"fp4code/django-cms","owner":{"login":"fp4code","id":359819,"avatar_url":"https://avatars3.githubusercontent.com/u/359819?v=4","gravatar_id":"","url":"https://api.github.com/users/fp4code","html_url":"https://github.com/fp4code","followers_url":"https://api.github.com/users/fp4code/followers","following_url":"https://api.github.com/users/fp4code/following{/other_user}","gists_url":"https://api.github.com/users/fp4code/gists{/gist_id}","starred_url":"https://api.github.com/users/fp4code/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fp4code/subscriptions","organizations_url":"https://api.github.com/users/fp4code/orgs","repos_url":"https://api.github.com/users/fp4code/repos","events_url":"https://api.github.com/users/fp4code/events{/privacy}","received_events_url":"https://api.github.com/users/fp4code/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/fp4code/django-cms","description":"The easy-to-use and developer-friendly CMS","fork":true,"url":"https://api.github.com/repos/fp4code/django-cms","forks_url":"https://api.github.com/repos/fp4code/django-cms/forks","keys_url":"https://api.github.com/repos/fp4code/django-cms/keys{/key_id}","collaborators_url":"https://api.github.com/repos/fp4code/django-cms/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/fp4code/django-cms/teams","hooks_url":"https://api.github.com/repos/fp4code/django-cms/hooks","issue_events_url":"https://api.github.com/repos/fp4code/django-cms/issues/events{/number}","events_url":"https://api.github.com/repos/fp4code/django-cms/events","assignees_url":"https://api.github.com/repos/fp4code/django-cms/assignees{/user}","branches_url":"https://api.github.com/repos/fp4code/django-cms/branches{/branch}","tags_url":"https://api.github.com/repos/fp4code/django-cms/tags","blobs_url":"https://api.github.com/repos/fp4code/django-cms/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/fp4code/django-cms/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/fp4code/django-cms/git/refs{/sha}","trees_url":"https://api.github.com/repos/fp4code/django-cms/git/trees{/sha}","statuses_url":"https://api.github.com/repos/fp4code/django-cms/statuses/{sha}","languages_url":"https://api.github.com/repos/fp4code/django-cms/languages","stargazers_url":"https://api.github.com/repos/fp4code/django-cms/stargazers","contributors_url":"https://api.github.com/repos/fp4code/django-cms/contributors","subscribers_url":"https://api.github.com/repos/fp4code/django-cms/subscribers","subscription_url":"https://api.github.com/repos/fp4code/django-cms/subscription","commits_url":"https://api.github.com/repos/fp4code/django-cms/commits{/sha}","git_commits_url":"https://api.github.com/repos/fp4code/django-cms/git/commits{/sha}","comments_url":"https://api.github.com/repos/fp4code/django-cms/comments{/number}","issue_comment_url":"https://api.github.com/repos/fp4code/django-cms/issues/comments{/number}","contents_url":"https://api.github.com/repos/fp4code/django-cms/contents/{+path}","compare_url":"https://api.github.com/repos/fp4code/django-cms/compare/{base}...{head}","merges_url":"https://api.github.com/repos/fp4code/django-cms/merges","archive_url":"https://api.github.com/repos/fp4code/django-cms/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/fp4code/django-cms/downloads","issues_url":"https://api.github.com/repos/fp4code/django-cms/issues{/number}","pulls_url":"https://api.github.com/repos/fp4code/django-cms/pulls{/number}","milestones_url":"https://api.github.com/repos/fp4code/django-cms/milestones{/number}","notifications_url":"https://api.github.com/repos/fp4code/django-cms/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/fp4code/django-cms/labels{/name}","releases_url":"https://api.github.com/repos/fp4code/django-cms/releases{/id}","deployments_url":"https://api.github.com/repos/fp4code/django-cms/deployments","created_at":"2017-07-27T13:39:13Z","updated_at":"2017-07-27T13:39:19Z","pushed_at":"2017-12-18T17:05:59Z","git_url":"git://github.com/fp4code/django-cms.git","ssh_url":"git@github.com:fp4code/django-cms.git","clone_url":"https://github.com/fp4code/django-cms.git","svn_url":"https://github.com/fp4code/django-cms","homepage":"http://www.django-cms.org","size":75037,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":null,"forks":0,"open_issues":0,"watchers":0,"default_branch":"release/3.4.x"}},"base":{"label":"divio:release/3.4.x","ref":"release/3.4.x","sha":"86af71c7c006196e8f0a0713f37df1d086a74130","user":{"login":"divio","id":117904,"avatar_url":"https://avatars0.githubusercontent.com/u/117904?v=4","gravatar_id":"","url":"https://api.github.com/users/divio","html_url":"https://github.com/divio","followers_url":"https://api.github.com/users/divio/followers","following_url":"https://api.github.com/users/divio/following{/other_user}","gists_url":"https://api.github.com/users/divio/gists{/gist_id}","starred_url":"https://api.github.com/users/divio/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/divio/subscriptions","organizations_url":"https://api.github.com/users/divio/orgs","repos_url":"https://api.github.com/users/divio/repos","events_url":"https://api.github.com/users/divio/events{/privacy}","received_events_url":"https://api.github.com/users/divio/received_events","type":"Organization","site_admin":false},"repo":{"id":143580,"name":"django-cms","full_name":"divio/django-cms","owner":{"login":"divio","id":117904,"avatar_url":"https://avatars0.githubusercontent.com/u/117904?v=4","gravatar_id":"","url":"https://api.github.com/users/divio","html_url":"https://github.com/divio","followers_url":"https://api.github.com/users/divio/followers","following_url":"https://api.github.com/users/divio/following{/other_user}","gists_url":"https://api.github.com/users/divio/gists{/gist_id}","starred_url":"https://api.github.com/users/divio/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/divio/subscriptions","organizations_url":"https://api.github.com/users/divio/orgs","repos_url":"https://api.github.com/users/divio/repos","events_url":"https://api.github.com/users/divio/events{/privacy}","received_events_url":"https://api.github.com/users/divio/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/divio/django-cms","description":"The easy-to-use and developer-friendly CMS","fork":false,"url":"https://api.github.com/repos/divio/django-cms","forks_url":"https://api.github.com/repos/divio/django-cms/forks","keys_url":"https://api.github.com/repos/divio/django-cms/keys{/key_id}","collaborators_url":"https://api.github.com/repos/divio/django-cms/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/divio/django-cms/teams","hooks_url":"https://api.github.com/repos/divio/django-cms/hooks","issue_events_url":"https://api.github.com/repos/divio/django-cms/issues/events{/number}","events_url":"https://api.github.com/repos/divio/django-cms/events","assignees_url":"https://api.github.com/repos/divio/django-cms/assignees{/user}","branches_url":"https://api.github.com/repos/divio/django-cms/branches{/branch}","tags_url":"https://api.github.com/repos/divio/django-cms/tags","blobs_url":"https://api.github.com/repos/divio/django-cms/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/divio/django-cms/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/divio/django-cms/git/refs{/sha}","trees_url":"https://api.github.com/repos/divio/django-cms/git/trees{/sha}","statuses_url":"https://api.github.com/repos/divio/django-cms/statuses/{sha}","languages_url":"https://api.github.com/repos/divio/django-cms/languages","stargazers_url":"https://api.github.com/repos/divio/django-cms/stargazers","contributors_url":"https://api.github.com/repos/divio/django-cms/contributors","subscribers_url":"https://api.github.com/repos/divio/django-cms/subscribers","subscription_url":"https://api.github.com/repos/divio/django-cms/subscription","commits_url":"https://api.github.com/repos/divio/django-cms/commits{/sha}","git_commits_url":"https://api.github.com/repos/divio/django-cms/git/commits{/sha}","comments_url":"https://api.github.com/repos/divio/django-cms/comments{/number}","issue_comment_url":"https://api.github.com/repos/divio/django-cms/issues/comments{/number}","contents_url":"https://api.github.com/repos/divio/django-cms/contents/{+path}","compare_url":"https://api.github.com/repos/divio/django-cms/compare/{base}...{head}","merges_url":"https://api.github.com/repos/divio/django-cms/merges","archive_url":"https://api.github.com/repos/divio/django-cms/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/divio/django-cms/downloads","issues_url":"https://api.github.com/repos/divio/django-cms/issues{/number}","pulls_url":"https://api.github.com/repos/divio/django-cms/pulls{/number}","milestones_url":"https://api.github.com/repos/divio/django-cms/milestones{/number}","notifications_url":"https://api.github.com/repos/divio/django-cms/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/divio/django-cms/labels{/name}","releases_url":"https://api.github.com/repos/divio/django-cms/releases{/id}","deployments_url":"https://api.github.com/repos/divio/django-cms/deployments","created_at":"2009-03-05T10:14:18Z","updated_at":"2017-12-28T13:03:02Z","pushed_at":"2017-12-27T21:34:52Z","git_url":"git://github.com/divio/django-cms.git","ssh_url":"git@github.com:divio/django-cms.git","clone_url":"https://github.com/divio/django-cms.git","svn_url":"https://github.com/divio/django-cms","homepage":"http://www.django-cms.org","size":76567,"stargazers_count":5416,"watchers_count":5416,"language":"Python","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":2019,"mirror_url":null,"archived":false,"open_issues_count":207,"license":{"key":"bsd-3-clause","name":"BSD 3-clause \"New\" or \"Revised\" License","spdx_id":"BSD-3-Clause","url":"https://api.github.com/licenses/bsd-3-clause"},"forks":2019,"open_issues":207,"watchers":5416,"default_branch":"release/3.4.x"}},"_links":{"self":{"href":"https://api.github.com/repos/divio/django-cms/pulls/6176"},"html":{"href":"https://github.com/divio/django-cms/pull/6176"},"issue":{"href":"https://api.github.com/repos/divio/django-cms/issues/6176"},"comments":{"href":"https://api.github.com/repos/divio/django-cms/issues/6176/comments"},"review_comments":{"href":"https://api.github.com/repos/divio/django-cms/pulls/6176/comments"},"review_comment":{"href":"https://api.github.com/repos/divio/django-cms/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/divio/django-cms/pulls/6176/commits"},"statuses":{"href":"https://api.github.com/repos/divio/django-cms/statuses/2bdc091ee6c465d52099c0fce28d79623fba99af"}},"author_association":"NONE"}}
{"actor":{"display_login":"evildmp"}}