From f3b22ff45a7e50d51ac41f12947899b14ed0fb3e Mon Sep 17 00:00:00 2001 From: Shuowei Li Date: Fri, 4 Sep 2026 19:21:42 +0000 Subject: [PATCH 1/3] docs(bigquery): fix table rendering in markdown docs --- packages/google-cloud-bigquery/docs/conf.py | 22 +++++++++++++++- .../tests/unit/test_docs.py | 26 +++++++++++++++++++ 2 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 packages/google-cloud-bigquery/tests/unit/test_docs.py diff --git a/packages/google-cloud-bigquery/docs/conf.py b/packages/google-cloud-bigquery/docs/conf.py index df1c18b68e31..73a888980481 100644 --- a/packages/google-cloud-bigquery/docs/conf.py +++ b/packages/google-cloud-bigquery/docs/conf.py @@ -24,9 +24,9 @@ # All configuration values have a default; values that are commented out # serve to show the default. -import sys import os import shlex +import sys # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the @@ -37,6 +37,26 @@ # See also: https://github.com/docascode/sphinx-docfx-yaml/issues/85 sys.path.insert(0, os.path.abspath(".")) +# sphinx-markdown-builder unconditionally inserts trailing newlines into +# table cell paragraphs, breaking DevSite table formatting. Suppressing +# newlines while inside table cells preserves valid GFM tables. +try: + import sphinx_markdown_builder.markdown_writer as _smb_writer + + _orig_depart_paragraph = _smb_writer.MarkdownTranslator.depart_paragraph + + def _table_safe_depart_paragraph(self, node): + if getattr(self, "table_entries", None): + return + return _orig_depart_paragraph(self, node) + + _smb_writer.MarkdownTranslator.depart_paragraph = _table_safe_depart_paragraph + _smb_writer.MarkdownTranslator.depart_compact_paragraph = ( + _table_safe_depart_paragraph + ) +except ImportError: + pass + __version__ = "" # -- General configuration ------------------------------------------------ diff --git a/packages/google-cloud-bigquery/tests/unit/test_docs.py b/packages/google-cloud-bigquery/tests/unit/test_docs.py new file mode 100644 index 000000000000..b861fe04e54d --- /dev/null +++ b/packages/google-cloud-bigquery/tests/unit/test_docs.py @@ -0,0 +1,26 @@ +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import pathlib +import runpy + + +def test_docs_conf_executes_successfully(): + docs_dir = pathlib.Path(__file__).parent.parent.parent / "docs" + conf_path = docs_dir / "conf.py" + + res = runpy.run_path(str(conf_path)) + + assert "project" in res + assert res["project"] == "google-cloud-bigquery" From 319959b387c84d1f749e8ee7b0e4cda756748cc5 Mon Sep 17 00:00:00 2001 From: Shuowei Li Date: Fri, 4 Sep 2026 12:39:25 -0700 Subject: [PATCH 2/3] Update packages/google-cloud-bigquery/tests/unit/test_docs.py Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- packages/google-cloud-bigquery/tests/unit/test_docs.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/google-cloud-bigquery/tests/unit/test_docs.py b/packages/google-cloud-bigquery/tests/unit/test_docs.py index b861fe04e54d..994dd3849e3b 100644 --- a/packages/google-cloud-bigquery/tests/unit/test_docs.py +++ b/packages/google-cloud-bigquery/tests/unit/test_docs.py @@ -20,6 +20,10 @@ def test_docs_conf_executes_successfully(): docs_dir = pathlib.Path(__file__).parent.parent.parent / "docs" conf_path = docs_dir / "conf.py" + if not conf_path.exists(): + import pytest + pytest.skip("docs/conf.py not found") + res = runpy.run_path(str(conf_path)) assert "project" in res From 34eb197d07e4e853a216a72da54565f78e7e0be0 Mon Sep 17 00:00:00 2001 From: Shuowei Li Date: Fri, 4 Sep 2026 21:45:31 +0000 Subject: [PATCH 3/3] style: format test_docs.py with black --- packages/google-cloud-bigquery/tests/unit/test_docs.py | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/google-cloud-bigquery/tests/unit/test_docs.py b/packages/google-cloud-bigquery/tests/unit/test_docs.py index 994dd3849e3b..48f185da8b14 100644 --- a/packages/google-cloud-bigquery/tests/unit/test_docs.py +++ b/packages/google-cloud-bigquery/tests/unit/test_docs.py @@ -22,6 +22,7 @@ def test_docs_conf_executes_successfully(): if not conf_path.exists(): import pytest + pytest.skip("docs/conf.py not found") res = runpy.run_path(str(conf_path))