{"action":"created","comment":{"url":"https://api.github.com/repos/getpelican/pelican/pulls/comments/81928698","pull_request_review_id":2871372,"id":81928698,"diff_hunk":"@@ -680,21 +681,9 @@ class StaticGenerator(Generator):\n \n     def __init__(self, *args, **kwargs):\n         super(StaticGenerator, self).__init__(*args, **kwargs)\n+        self.create_symlinks = False","path":"pelican/generators.py","position":12,"original_position":12,"commit_id":"d6abb8af970e64e4342f3c73be8a45f1fda62d67","original_commit_id":"d6abb8af970e64e4342f3c73be8a45f1fda62d67","user":{"login":"almet","id":67073,"avatar_url":"https://avatars.githubusercontent.com/u/67073?v=3","gravatar_id":"","url":"https://api.github.com/users/almet","html_url":"https://github.com/almet","followers_url":"https://api.github.com/users/almet/followers","following_url":"https://api.github.com/users/almet/following{/other_user}","gists_url":"https://api.github.com/users/almet/gists{/gist_id}","starred_url":"https://api.github.com/users/almet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/almet/subscriptions","organizations_url":"https://api.github.com/users/almet/orgs","repos_url":"https://api.github.com/users/almet/repos","events_url":"https://api.github.com/users/almet/events{/privacy}","received_events_url":"https://api.github.com/users/almet/received_events","type":"User","site_admin":false},"body":"Name it \"can_create_symlinks\"? ","created_at":"2016-10-05T09:00:20Z","updated_at":"2016-10-05T09:00:20Z","html_url":"https://github.com/getpelican/pelican/pull/1982#discussion_r81928698","pull_request_url":"https://api.github.com/repos/getpelican/pelican/pulls/1982","_links":{"self":{"href":"https://api.github.com/repos/getpelican/pelican/pulls/comments/81928698"},"html":{"href":"https://github.com/getpelican/pelican/pull/1982#discussion_r81928698"},"pull_request":{"href":"https://api.github.com/repos/getpelican/pelican/pulls/1982"}}},"pull_request":{"url":"https://api.github.com/repos/getpelican/pelican/pulls/1982","id":80334022,"html_url":"https://github.com/getpelican/pelican/pull/1982","diff_url":"https://github.com/getpelican/pelican/pull/1982.diff","patch_url":"https://github.com/getpelican/pelican/pull/1982.patch","issue_url":"https://api.github.com/repos/getpelican/pelican/issues/1982","number":1982,"state":"open","locked":false,"title":"Improvements to static files generator","user":{"login":"adeverteuil","id":3270755,"avatar_url":"https://avatars.githubusercontent.com/u/3270755?v=3","gravatar_id":"","url":"https://api.github.com/users/adeverteuil","html_url":"https://github.com/adeverteuil","followers_url":"https://api.github.com/users/adeverteuil/followers","following_url":"https://api.github.com/users/adeverteuil/following{/other_user}","gists_url":"https://api.github.com/users/adeverteuil/gists{/gist_id}","starred_url":"https://api.github.com/users/adeverteuil/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adeverteuil/subscriptions","organizations_url":"https://api.github.com/users/adeverteuil/orgs","repos_url":"https://api.github.com/users/adeverteuil/repos","events_url":"https://api.github.com/users/adeverteuil/events{/privacy}","received_events_url":"https://api.github.com/users/adeverteuil/received_events","type":"User","site_admin":false},"body":"Hello,\r\n\r\nI am interested in improving `StaticGenerator`. Please let me know if a similar effort is already under way, and also bring your recommendations and ideas. I don't have a timeline but I'd really like to have at least a basic working feature in about 2 weeks given the free time that I have.\r\n\r\nThe problem is when the site content has several large static files, like videos. When generating the site, all the static files are copied, regardless of modification time. Even `WRITE_SELECTED` doesn't prevent that. For example, the pages and article take 4 seconds to process, but the static files add another almost 30 seconds to it.\r\n\r\nI'm thinking of adding a setting `STATIC_CHECK_MODIFIED`, false by default (the current behaviour). I'm currently working on inserting the logic in the `StaticGenerator.generate_context()` method.\r\n\r\nOnce it works well with mtimes, then maybe I can add a `STATIC_CHECK_MODIFIED_METHOD` settings which would be \"mtime\" by default, or the name of a hashlib function. But I doubt that computing hashes on two video files (source_path and save_as) would be faster than just copying one over the other.\r\n\r\nThen I also want to try symlinks or hardlinks from save_as to source_path. I imagine that would be fast and even space efficient. Do you think of any problems that could arise if the output files are links and not copies?\r\n\r\nI also think #1980 is a great idea which could also solve the problem and I might look into it.\r\n\r\nSincerely,\r\nAlexandre de Verteuil","created_at":"2016-08-06T07:56:18Z","updated_at":"2016-10-05T09:00:20Z","closed_at":null,"merged_at":null,"merge_commit_sha":"79a7d26eeb4aa3fc245eaaf7cf1c43a194326d65","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/getpelican/pelican/pulls/1982/commits","review_comments_url":"https://api.github.com/repos/getpelican/pelican/pulls/1982/comments","review_comment_url":"https://api.github.com/repos/getpelican/pelican/pulls/comments{/number}","comments_url":"https://api.github.com/repos/getpelican/pelican/issues/1982/comments","statuses_url":"https://api.github.com/repos/getpelican/pelican/statuses/d6abb8af970e64e4342f3c73be8a45f1fda62d67","head":{"label":"adeverteuil:feature_check_static_modified","ref":"feature_check_static_modified","sha":"d6abb8af970e64e4342f3c73be8a45f1fda62d67","user":{"login":"adeverteuil","id":3270755,"avatar_url":"https://avatars.githubusercontent.com/u/3270755?v=3","gravatar_id":"","url":"https://api.github.com/users/adeverteuil","html_url":"https://github.com/adeverteuil","followers_url":"https://api.github.com/users/adeverteuil/followers","following_url":"https://api.github.com/users/adeverteuil/following{/other_user}","gists_url":"https://api.github.com/users/adeverteuil/gists{/gist_id}","starred_url":"https://api.github.com/users/adeverteuil/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adeverteuil/subscriptions","organizations_url":"https://api.github.com/users/adeverteuil/orgs","repos_url":"https://api.github.com/users/adeverteuil/repos","events_url":"https://api.github.com/users/adeverteuil/events{/privacy}","received_events_url":"https://api.github.com/users/adeverteuil/received_events","type":"User","site_admin":false},"repo":{"id":12853360,"name":"pelican","full_name":"adeverteuil/pelican","owner":{"login":"adeverteuil","id":3270755,"avatar_url":"https://avatars.githubusercontent.com/u/3270755?v=3","gravatar_id":"","url":"https://api.github.com/users/adeverteuil","html_url":"https://github.com/adeverteuil","followers_url":"https://api.github.com/users/adeverteuil/followers","following_url":"https://api.github.com/users/adeverteuil/following{/other_user}","gists_url":"https://api.github.com/users/adeverteuil/gists{/gist_id}","starred_url":"https://api.github.com/users/adeverteuil/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adeverteuil/subscriptions","organizations_url":"https://api.github.com/users/adeverteuil/orgs","repos_url":"https://api.github.com/users/adeverteuil/repos","events_url":"https://api.github.com/users/adeverteuil/events{/privacy}","received_events_url":"https://api.github.com/users/adeverteuil/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/adeverteuil/pelican","description":"Static site generator that supports Markdown and reST syntax. Powered by Python.","fork":true,"url":"https://api.github.com/repos/adeverteuil/pelican","forks_url":"https://api.github.com/repos/adeverteuil/pelican/forks","keys_url":"https://api.github.com/repos/adeverteuil/pelican/keys{/key_id}","collaborators_url":"https://api.github.com/repos/adeverteuil/pelican/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/adeverteuil/pelican/teams","hooks_url":"https://api.github.com/repos/adeverteuil/pelican/hooks","issue_events_url":"https://api.github.com/repos/adeverteuil/pelican/issues/events{/number}","events_url":"https://api.github.com/repos/adeverteuil/pelican/events","assignees_url":"https://api.github.com/repos/adeverteuil/pelican/assignees{/user}","branches_url":"https://api.github.com/repos/adeverteuil/pelican/branches{/branch}","tags_url":"https://api.github.com/repos/adeverteuil/pelican/tags","blobs_url":"https://api.github.com/repos/adeverteuil/pelican/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/adeverteuil/pelican/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/adeverteuil/pelican/git/refs{/sha}","trees_url":"https://api.github.com/repos/adeverteuil/pelican/git/trees{/sha}","statuses_url":"https://api.github.com/repos/adeverteuil/pelican/statuses/{sha}","languages_url":"https://api.github.com/repos/adeverteuil/pelican/languages","stargazers_url":"https://api.github.com/repos/adeverteuil/pelican/stargazers","contributors_url":"https://api.github.com/repos/adeverteuil/pelican/contributors","subscribers_url":"https://api.github.com/repos/adeverteuil/pelican/subscribers","subscription_url":"https://api.github.com/repos/adeverteuil/pelican/subscription","commits_url":"https://api.github.com/repos/adeverteuil/pelican/commits{/sha}","git_commits_url":"https://api.github.com/repos/adeverteuil/pelican/git/commits{/sha}","comments_url":"https://api.github.com/repos/adeverteuil/pelican/comments{/number}","issue_comment_url":"https://api.github.com/repos/adeverteuil/pelican/issues/comments{/number}","contents_url":"https://api.github.com/repos/adeverteuil/pelican/contents/{+path}","compare_url":"https://api.github.com/repos/adeverteuil/pelican/compare/{base}...{head}","merges_url":"https://api.github.com/repos/adeverteuil/pelican/merges","archive_url":"https://api.github.com/repos/adeverteuil/pelican/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/adeverteuil/pelican/downloads","issues_url":"https://api.github.com/repos/adeverteuil/pelican/issues{/number}","pulls_url":"https://api.github.com/repos/adeverteuil/pelican/pulls{/number}","milestones_url":"https://api.github.com/repos/adeverteuil/pelican/milestones{/number}","notifications_url":"https://api.github.com/repos/adeverteuil/pelican/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/adeverteuil/pelican/labels{/name}","releases_url":"https://api.github.com/repos/adeverteuil/pelican/releases{/id}","deployments_url":"https://api.github.com/repos/adeverteuil/pelican/deployments","created_at":"2013-09-15T22:00:44Z","updated_at":"2016-07-23T08:43:02Z","pushed_at":"2016-08-11T07:37:30Z","git_url":"git://github.com/adeverteuil/pelican.git","ssh_url":"git@github.com:adeverteuil/pelican.git","clone_url":"https://github.com/adeverteuil/pelican.git","svn_url":"https://github.com/adeverteuil/pelican","homepage":"http://getpelican.com/","size":4767,"stargazers_count":0,"watchers_count":0,"language":"HTML","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"getpelican:master","ref":"master","sha":"6232241ef1d3f6c29e272469cb9dc982f2d84ff2","user":{"login":"getpelican","id":2043492,"avatar_url":"https://avatars.githubusercontent.com/u/2043492?v=3","gravatar_id":"","url":"https://api.github.com/users/getpelican","html_url":"https://github.com/getpelican","followers_url":"https://api.github.com/users/getpelican/followers","following_url":"https://api.github.com/users/getpelican/following{/other_user}","gists_url":"https://api.github.com/users/getpelican/gists{/gist_id}","starred_url":"https://api.github.com/users/getpelican/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/getpelican/subscriptions","organizations_url":"https://api.github.com/users/getpelican/orgs","repos_url":"https://api.github.com/users/getpelican/repos","events_url":"https://api.github.com/users/getpelican/events{/privacy}","received_events_url":"https://api.github.com/users/getpelican/received_events","type":"Organization","site_admin":false},"repo":{"id":993110,"name":"pelican","full_name":"getpelican/pelican","owner":{"login":"getpelican","id":2043492,"avatar_url":"https://avatars.githubusercontent.com/u/2043492?v=3","gravatar_id":"","url":"https://api.github.com/users/getpelican","html_url":"https://github.com/getpelican","followers_url":"https://api.github.com/users/getpelican/followers","following_url":"https://api.github.com/users/getpelican/following{/other_user}","gists_url":"https://api.github.com/users/getpelican/gists{/gist_id}","starred_url":"https://api.github.com/users/getpelican/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/getpelican/subscriptions","organizations_url":"https://api.github.com/users/getpelican/orgs","repos_url":"https://api.github.com/users/getpelican/repos","events_url":"https://api.github.com/users/getpelican/events{/privacy}","received_events_url":"https://api.github.com/users/getpelican/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/getpelican/pelican","description":"Static site generator that supports Markdown and reST syntax. Powered by Python.","fork":false,"url":"https://api.github.com/repos/getpelican/pelican","forks_url":"https://api.github.com/repos/getpelican/pelican/forks","keys_url":"https://api.github.com/repos/getpelican/pelican/keys{/key_id}","collaborators_url":"https://api.github.com/repos/getpelican/pelican/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/getpelican/pelican/teams","hooks_url":"https://api.github.com/repos/getpelican/pelican/hooks","issue_events_url":"https://api.github.com/repos/getpelican/pelican/issues/events{/number}","events_url":"https://api.github.com/repos/getpelican/pelican/events","assignees_url":"https://api.github.com/repos/getpelican/pelican/assignees{/user}","branches_url":"https://api.github.com/repos/getpelican/pelican/branches{/branch}","tags_url":"https://api.github.com/repos/getpelican/pelican/tags","blobs_url":"https://api.github.com/repos/getpelican/pelican/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/getpelican/pelican/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/getpelican/pelican/git/refs{/sha}","trees_url":"https://api.github.com/repos/getpelican/pelican/git/trees{/sha}","statuses_url":"https://api.github.com/repos/getpelican/pelican/statuses/{sha}","languages_url":"https://api.github.com/repos/getpelican/pelican/languages","stargazers_url":"https://api.github.com/repos/getpelican/pelican/stargazers","contributors_url":"https://api.github.com/repos/getpelican/pelican/contributors","subscribers_url":"https://api.github.com/repos/getpelican/pelican/subscribers","subscription_url":"https://api.github.com/repos/getpelican/pelican/subscription","commits_url":"https://api.github.com/repos/getpelican/pelican/commits{/sha}","git_commits_url":"https://api.github.com/repos/getpelican/pelican/git/commits{/sha}","comments_url":"https://api.github.com/repos/getpelican/pelican/comments{/number}","issue_comment_url":"https://api.github.com/repos/getpelican/pelican/issues/comments{/number}","contents_url":"https://api.github.com/repos/getpelican/pelican/contents/{+path}","compare_url":"https://api.github.com/repos/getpelican/pelican/compare/{base}...{head}","merges_url":"https://api.github.com/repos/getpelican/pelican/merges","archive_url":"https://api.github.com/repos/getpelican/pelican/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/getpelican/pelican/downloads","issues_url":"https://api.github.com/repos/getpelican/pelican/issues{/number}","pulls_url":"https://api.github.com/repos/getpelican/pelican/pulls{/number}","milestones_url":"https://api.github.com/repos/getpelican/pelican/milestones{/number}","notifications_url":"https://api.github.com/repos/getpelican/pelican/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/getpelican/pelican/labels{/name}","releases_url":"https://api.github.com/repos/getpelican/pelican/releases{/id}","deployments_url":"https://api.github.com/repos/getpelican/pelican/deployments","created_at":"2010-10-16T18:57:40Z","updated_at":"2016-10-05T01:35:11Z","pushed_at":"2016-10-04T16:49:04Z","git_url":"git://github.com/getpelican/pelican.git","ssh_url":"git@github.com:getpelican/pelican.git","clone_url":"https://github.com/getpelican/pelican.git","svn_url":"https://github.com/getpelican/pelican","homepage":"http://getpelican.com/","size":8779,"stargazers_count":6156,"watchers_count":6156,"language":"HTML","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1296,"mirror_url":null,"open_issues_count":125,"forks":1296,"open_issues":125,"watchers":6156,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/getpelican/pelican/pulls/1982"},"html":{"href":"https://github.com/getpelican/pelican/pull/1982"},"issue":{"href":"https://api.github.com/repos/getpelican/pelican/issues/1982"},"comments":{"href":"https://api.github.com/repos/getpelican/pelican/issues/1982/comments"},"review_comments":{"href":"https://api.github.com/repos/getpelican/pelican/pulls/1982/comments"},"review_comment":{"href":"https://api.github.com/repos/getpelican/pelican/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/getpelican/pelican/pulls/1982/commits"},"statuses":{"href":"https://api.github.com/repos/getpelican/pelican/statuses/d6abb8af970e64e4342f3c73be8a45f1fda62d67"}}}}
{"actor":{"display_login":"almet"}}