MkDocs projects use RTD's analytics privacy improvements
@@ -100,11 +100,6 @@ class BaseMkdocs(BaseBuilder):
if 'theme_dir' not in user_config and self.use_theme:
user_config['theme_dir'] = TEMPLATE_DIR
- yaml.safe_dump(
- user_config,
- open(os.path.join(self.root_path, 'mkdocs.yml'), 'w')
- )
-
docs_path = os.path.join(self.root_path, docs_dir)
# RTD javascript writing
@@ -112,6 +107,16 @@ class BaseMkdocs(BaseBuilder):
with open(os.path.join(docs_path, 'readthedocs-data.js'), 'w') as f:
f.write(rtd_data)
+ # Use Read the Docs' analytics setup rather than mkdocs'
+ # This supports using RTD's privacy improvements around analytics
+ user_config['google_analytics'] = None
+
+ # Write the mkdocs configuration
+ yaml.safe_dump(
+ user_config,
+ open(os.path.join(self.root_path, 'mkdocs.yml'), 'w')
+ )
+
def generate_rtd_data(self, docs_dir, mkdocs_config):
"""Generate template properties and render readthedocs-data.js."""
# Get the theme name
@@ -120,6 +125,12 @@ class BaseMkdocs(BaseBuilder):
if theme_dir:
theme_name = theme_dir.rstrip('/').split('/')[-1]
+ # Use the analytics code from mkdocs.yml if it isn't set already by Read the Docs
+ analytics_code = self.version.project.analytics_code
+ if not analytics_code and mkdocs_config.get('google_analytics'):
+ # http://www.mkdocs.org/user-guide/configuration/#google_analytics
+ analytics_code = mkdocs_config['google_analytics'][0]
+
# Will be available in the JavaScript as READTHEDOCS_DATA.
readthedocs_data = {
'project': self.version.project.slug,
@@ -134,7 +145,7 @@ class BaseMkdocs(BaseBuilder):
'api_host': getattr(settings, 'PUBLIC_API_URL', 'https://readthedocs.org'),
'commit': self.version.project.vcs_repo(self.version.slug).commit,
'global_analytics_code': getattr(settings, 'GLOBAL_ANALYTICS_CODE', 'UA-17997319-1'),
- 'user_analytics_code': self.version.project.analytics_code,
+ 'user_analytics_code': analytics_code,
}
data_json = json.dumps(readthedocs_data, indent=4)
data_ctx = {
