useblocks / sphinx-simplepdf

A simple PDF builder for Sphinx documentations
https://sphinx-simplepdf.readthedocs.io
MIT License
36 stars 15 forks source link

Images are displayed larger than the page and are cut off #9

Closed 1kastner closed 1 year ago

1kastner commented 2 years ago

Furthermore, some of the SVG files are completely distorted, see this screenshot:

grafik

How could this be automatically resized to the page width? The used HTML properities are

max-width: 100%;
height: auto;

Thus, I am a bit surprised that the image is halved.

1kastner commented 2 years ago

A similar or identical issue has been raised at https://groups.google.com/g/sphinx-users/c/r4ahhcagNK0/m/2Tj3nOwIAgAJ, so I guess it has nothing to do with the specific warnings I mentioned in the other issues.

danwos commented 1 year ago

Thanks for the report. :+1: Can you please test it again with the code from the main branch?

Some changes were made and I added a DEMO-PDF, which contains a bigger SVG (3000x3000), which looks good: https://sphinx-simplepdf.readthedocs.io/en/latest/_static/Sphinx-SimplePDF-DEMO.pdf (last chapter: Images).

But I can't tell why the SVG is not entered correctly. If you still have problems, would it be possible to provide a test-svg, which we can add to our DEMO PDF? This would help us to work on it.

1kastner commented 1 year ago

I updated the package with the command pip install --upgrade git+https://github.com/useblocks/sphinx-simplepdf.git@main which resolved to commit 4e3a3933ad7347a813d1030ceec8d94719257476 and that should fit. After updating to the latest version of the main branch, the creation of the PDF was successful. When I tried to open the PDF, the first pop-up of my Adobe Acrobat Reader was this one:

grafik

This has little to do with the issue related to the image but generally I am not sure how to deal with the font problems. I am somehow suspicious that the font issues might be the reason for the unreadable text within the PDF though.

When I checked my figures, I could not see a major improvement. All my SVG files are still cut off. Maybe they are processed according to a different logic?

By the way, the broken SVG is this one: https://conflowgen.readthedocs.io/en/latest/_images/generation_process.svg When I first tried to copy it, GitHub correctly rendered it as this: grafik I did manually manipulate some of the SVG code but it has not created any issues in the SVG viewers of my choice (e.g., browsers). Feel free to use it - I am the "artist" (not that it is beatiful, just legal terms).

sachin-suresh-rapyuta commented 1 year ago

@1kastner - could you please tell me how you fixed the image issue? I am using PNG images and I still am hit with this issue. I also face this issue with tables, where the columns exceed the right side of the PDF page. I am using sphinx-simplepdf 1.3.0

1kastner commented 1 year ago

It's not solved.

danwos commented 1 year ago

The scaling of the provided svg looks good in the DEMO PDF (main branch).

Only the used fonts are not working correctly, but I think that's because the used fonts inside the SVG are not available on my machine.

PDF screenshot: image

Browser screenshot (Firefox): image

Maybe it is a good idea to embed the used font in the SVG. Otherwise, it may look different on each machine (or use a more common font.)

@sachin-suresh-rapyuta: Can you test your problems with the latest version from the main branch? pip install --upgrade git+https://github.com/useblocks/sphinx-simplepdf.git@main We fixed certain stuff there. A new release will come in the next few days.

Thanks for all the feedback and examples here. It helps a lot to identify the corner cases :+1:

sachin-suresh-rapyuta commented 1 year ago

Yes, I did take the latest version.

Here is my code in rst:

.. image:: ../images/System_UI/overview/overall_progress.png
      :alt: Overall Progress

And the output in PDF:

image

The same issue is even for the list-table. Here is the output:

image

danwos commented 1 year ago

Let's focus on the image problem right now, as tables are a completely different story :)

I need to reproduce the issue so that I'm able to fix it. So I need to ask some more questions...

Can you tell me the dimensions of the image?

Can you show me, how the image is embedded in the used HTML code to build the PDF? Besides the built PDF, there is an index.html. Open this please, right-click on the image and select "Inspect (or something similar)". You should see something like this: image

Have you made a clean build, after installing the version from the main branch? Just delete the _build folder. It may be needed to not have old stuff in the sphinx cache.

Thanks for the help :+1:

sachin-suresh-rapyuta commented 1 year ago

Yes, these are the steps I followed:

  1. Used pip3 here:

    $ pip3 install --upgrade git+https://github.com/useblocks/sphinx-simplepdf.git@main
    ...
    Successfully installed sphinx-simplepdf-1.4.0
  2. Deleted the build folder (make clean)

  3. Run: make html

  4. In the index.html, this is the image element- It says: 1152 X 610

    image

  5. Then, ran make simplepdf. Below is the stack trace with so many warnings.

    $ make simplepdf
    
    copying extra files... done
    dumping object inventory... done
      WARNING: Font-face 'D3 Euronism' cannot be loaded
      WARNING: Font-face 'D3 Euronism Bold italic' cannot be loaded
      WARNING: Font-face 'D3 Euronism Bold' cannot be loaded
      WARNING: Font-face 'D3 Euronism italic' cannot be loaded
      WARNING: Font-face 'Helvetica Neue Bold' cannot be loaded
      WARNING: Font-face 'Helvetica Neue Light' cannot be loaded
      WARNING: Font-face 'Helvetica Neue Medium' cannot be loaded
      WARNING: Font-face 'Helvetica Neue Regular' cannot be loaded
      WARNING: Font-face 'Fira Sans' cannot be loaded
      WARNING: Font-face 'Fira Sans' cannot be loaded
      WARNING: Font-face 'Fira Sans' cannot be loaded
      WARNING: Font-face 'Fira Sans' cannot be loaded
      WARNING: Font-face 'Fira Sans' cannot be loaded
      WARNING: Font-face 'fontawesome-webfont' cannot be loaded
      WARNING: Ignored `text-shadow: none` at 635:3, unknown property.
      WARNING: Ignored `flex-basis: unset` at 734:7, invalid value.
      WARNING: Ignored `min-width: unset` at 767:3, invalid value.
      WARNING: Ignored `max-width: unset` at 768:3, invalid value.
      WARNING: Ignored `white-space: -moz-pre-wrap` at 791:3, invalid value.
      WARNING: Ignored `white-space: -o-pre-wrap` at 792:3, invalid value.
      ERROR: Failed to load stylesheet at file:///home/sachin/Workspace/Sootballs/rr_sootballs/internal/rr_pa_amr_docs/docs/build/simplepdf/_static/sphinxcontrib-httpexample.css: URLError: <urlopen error [Errno 2] No such file or directory: '/home/sachin/Workspace/Sootballs/rr_sootballs/internal/rr_pa_amr_docs/docs/build/simplepdf/_static/sphinxcontrib-httpexample.css'>
        WARNING: Ignored `display:grid ` at 1:11742, invalid value.
        WARNING: Ignored `display:-ms-flexbox ` at 1:11781, invalid value.
        WARNING: Ignored `display:-ms-flexbox ` at 1:11884, invalid value.
        WARNING: Ignored `display:-ms-inline-flexbox ` at 1:11990, invalid value.
        WARNING: Expected a media type, got '(min-width: 576px)'
        WARNING: Invalid media type '(min-width: 576px)' the whole @media rule was ignored at 1:12059.
        WARNING: Expected a media type, got '(min-width: 768px)'
        WARNING: Invalid media type '(min-width: 768px)' the whole @media rule was ignored at 1:12456.
        WARNING: Expected a media type, got '(min-width: 992px)'
        WARNING: Invalid media type '(min-width: 992px)' the whole @media rule was ignored at 1:12853.
        WARNING: Expected a media type, got '(min-width: 1200px)'
        WARNING: Invalid media type '(min-width: 1200px)' the whole @media rule was ignored at 1:13250.
        WARNING: Ignored `font-size:calc(1.375rem + 1.5vw) ` at 1:15051, invalid value.
        WARNING: Ignored `line-height:unset ` at 1:15095, invalid value.
        WARNING: Ignored `font-size:calc(1.325rem + 0.9vw) ` at 1:15144, invalid value.
        WARNING: Ignored `line-height:unset ` at 1:15188, invalid value.
        WARNING: Ignored `font-size:calc(1.3rem + 0.6vw) ` at 1:15237, invalid value.
        WARNING: Ignored `line-height:unset ` at 1:15279, invalid value.
        WARNING: Ignored `font-size:calc(1.275rem + 0.3vw) ` at 1:15328, invalid value.
        WARNING: Ignored `line-height:unset ` at 1:15372, invalid value.
        WARNING: Ignored `line-height:unset ` at 1:15450, invalid value.
        WARNING: Ignored `line-height:unset ` at 1:15525, invalid value.
        WARNING: Ignored `box-shadow:none ` at 1:17323, unknown property.
        WARNING: Ignored `box-shadow:0 .125rem .25rem var(--sd-color-shadow) ` at 1:17364, unknown property.
        WARNING: Ignored `box-shadow:0 .5rem 1rem var(--sd-color-shadow) ` at 1:17440, unknown property.
        WARNING: Ignored `box-shadow:0 1rem 3rem var(--sd-color-shadow) ` at 1:17512, unknown property.
        WARNING: Ignored `user-select:none` at 1:19248, unknown property.
        WARNING: Expected a media type, got '(prefers-reduced-motion: reduce)'
        WARNING: Invalid media type '(prefers-reduced-motion: reduce)' the whole @media rule was ignored at 1:19368.
        WARNING: Ignored `fill:currentColor` at 1:27305, unknown property.
        WARNING: Ignored `border:1px solid var(--sd-color-card-border)` at 1:28119, invalid value.
        WARNING: Ignored `display:-ms-flexbox` at 1:28217, invalid value.
        WARNING: Ignored `border-bottom:1px solid var(--sd-color-card-border)` at 1:28853, invalid value.
        WARNING: Ignored `border-radius:calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0` at 1:28933, invalid value.
        WARNING: Ignored `border-top:1px solid var(--sd-color-card-border)` at 1:29071, invalid value.
        WARNING: Ignored `border-radius:0 0 calc(0.25rem - 1px) calc(0.25rem - 1px)` at 1:29147, invalid value.
        WARNING: Ignored `border-radius:calc(0.25rem - 1px)` at 1:29450, invalid value.
        WARNING: Ignored `border-top-left-radius:calc(0.25rem - 1px)` at 1:29575, invalid value.
        WARNING: Ignored `border-top-right-radius:calc(0.25rem - 1px)` at 1:29618, invalid value.
        WARNING: Ignored `border-bottom-left-radius:calc(0.25rem - 1px)` at 1:29695, invalid value.
        WARNING: Ignored `border-bottom-right-radius:calc(0.25rem - 1px)` at 1:29741, invalid value.
        WARNING: Ignored `overflow-x:hidden` at 1:29890, unknown property.
        WARNING: Ignored `scroll-snap-type:x mandatory` at 1:29908, unknown property.
        WARNING: Ignored `overflow-x:auto` at 1:29974, unknown property.
        WARNING: Ignored `overflow-x:auto` at 1:30040, unknown property.
        WARNING: Ignored `scroll-snap-align:start` at 1:30098, unknown property.
        WARNING: Expected a media type, got '(min-width: 576px)'
        WARNING: Invalid media type '(min-width: 576px)' the whole @media rule was ignored at 1:30864.
        WARNING: Expected a media type, got '(min-width: 768px)'
        WARNING: Invalid media type '(min-width: 768px)' the whole @media rule was ignored at 1:30937.
        WARNING: Expected a media type, got '(min-width: 992px)'
        WARNING: Invalid media type '(min-width: 992px)' the whole @media rule was ignored at 1:31027.
        WARNING: Expected a media type, got '(min-width: 1200px)'
        WARNING: Invalid media type '(min-width: 1200px)' the whole @media rule was ignored at 1:31134.
        WARNING: Ignored `display:-ms-flexbox` at 1:31307, invalid value.
        WARNING: Ignored `margin-top:calc(var(--sd-gutter-y) * -1)` at 1:31374, invalid value.
        WARNING: Ignored `margin-right:calc(var(--sd-gutter-x) * -0.5)` at 1:31415, invalid value.
        WARNING: Ignored `margin-left:calc(var(--sd-gutter-x) * -0.5)` at 1:31460, invalid value.
        WARNING: Ignored `padding-right:calc(var(--sd-gutter-x) * 0.5)` at 1:31576, invalid value.
        WARNING: Ignored `padding-left:calc(var(--sd-gutter-x) * 0.5)` at 1:31621, invalid value.
        WARNING: Expected a media type, got '(min-width: 576px)'
        WARNING: Invalid media type '(min-width: 576px)' the whole @media rule was ignored at 1:32554.
        WARNING: Expected a media type, got '(min-width: 768px)'
        WARNING: Invalid media type '(min-width: 768px)' the whole @media rule was ignored at 1:33497.
        WARNING: Expected a media type, got '(min-width: 992px)'
        WARNING: Invalid media type '(min-width: 992px)' the whole @media rule was ignored at 1:34440.
        WARNING: Expected a media type, got '(min-width: 1200px)'
        WARNING: Invalid media type '(min-width: 1200px)' the whole @media rule was ignored at 1:35383.
        WARNING: Expected a media type, got '(min-width: 576px)'
        WARNING: Invalid media type '(min-width: 576px)' the whole @media rule was ignored at 1:37550.
        WARNING: Expected a media type, got '(min-width: 768px)'
        WARNING: Invalid media type '(min-width: 768px)' the whole @media rule was ignored at 1:38910.
        WARNING: Expected a media type, got '(min-width: 992px)'
        WARNING: Invalid media type '(min-width: 992px)' the whole @media rule was ignored at 1:40270.
        WARNING: Expected a media type, got '(min-width: 1200px)'
        WARNING: Invalid media type '(min-width: 1200px)' the whole @media rule was ignored at 1:41630.
        WARNING: Ignored `user-select:none` at 1:43239, unknown property.
        WARNING: Invalid or unsupported selector 'details.sd-dropdown summary::-webkit-details-marker', (<IdentToken -webkit-details-marker>, 'Expected a supported pseudo-element, got -webkit-details-marker')
        WARNING: Ignored `pointer-events:none` at 1:44087, unknown property.
        WARNING: Ignored `border:1px solid var(--sd-color-card-border)` at 1:44405, invalid value.
        WARNING: Ignored `outline-style:auto` at 1:45631, invalid value.
        WARNING: Ignored `box-shadow:0 -0.0625rem var(--sd-color-tabs-overline),0 .0625rem var(--sd-color-tabs-underline)` at 1:46171, unknown property.
        WARNING: Ignored `user-select:none` at 1:130, unknown property.
        WARNING: Invalid or unsupported selector 'details.dropdown summary::-webkit-details-marker', (<IdentToken -webkit-details-marker>, 'Expected a supported pseudo-element, got -webkit-details-marker')
        WARNING: Ignored `pointer-events:none` at 1:784, unknown property.
        WARNING: Ignored `fill:currentColor` at 1:1605, unknown property.
        WARNING: Ignored `box-shadow:0 -.0625rem var(--tabs-color-overline),0 .0625rem var(--tabs-color-underline)` at 1:1663, unknown property.
        WARNING: Ignored `outline-style:auto` at 1:2315, invalid value.
        WARNING: Ignored `user-select:none` at 1:4538, unknown property.
        WARNING: Ignored `box-shadow:0 0 0 .2rem rgba(0,123,255,0.25)` at 1:4672, unknown property.
        WARNING: Expected a media type, got '(prefers-reduced-motion: reduce)'
        WARNING: Invalid media type ' (prefers-reduced-motion: reduce)' the whole @media rule was ignored at 1:4766.
        WARNING: Ignored `pointer-events:none` at 1:4867, unknown property.
        WARNING: Ignored `box-shadow:0 0 0 .2rem rgba(0,123,255,0.5)` at 1:5149, unknown property.
        WARNING: Ignored `box-shadow:0 0 0 .2rem rgba(0,123,255,0.5)` at 1:5649, unknown property.
        WARNING: Ignored `box-shadow:0 0 0 .2rem rgba(108,117,125,0.5)` at 1:5964, unknown property.
        WARNING: Ignored `box-shadow:0 0 0 .2rem rgba(108,117,125,0.5)` at 1:6482, unknown property.
        WARNING: Ignored `box-shadow:0 0 0 .2rem rgba(40,167,69,0.5)` at 1:6789, unknown property.
        WARNING: Ignored `box-shadow:0 0 0 .2rem rgba(40,167,69,0.5)` at 1:7289, unknown property.
        WARNING: Ignored `box-shadow:0 0 0 .2rem rgba(23,162,184,0.5)` at 1:7579, unknown property.
        WARNING: Ignored `box-shadow:0 0 0 .2rem rgba(23,162,184,0.5)` at 1:8056, unknown property.
        WARNING: Ignored `box-shadow:0 0 0 .2rem rgba(255,193,7,0.5)` at 1:8371, unknown property.
        WARNING: Ignored `box-shadow:0 0 0 .2rem rgba(255,193,7,0.5)` at 1:8880, unknown property.
        WARNING: Ignored `box-shadow:0 0 0 .2rem rgba(220,53,69,0.5)` at 1:9180, unknown property.
        WARNING: Ignored `box-shadow:0 0 0 .2rem rgba(220,53,69,0.5)` at 1:9672, unknown property.
        WARNING: Ignored `box-shadow:0 0 0 .2rem rgba(248,249,250,0.5)` at 1:9976, unknown property.
        WARNING: Ignored `box-shadow:0 0 0 .2rem rgba(248,249,250,0.5)` at 1:10471, unknown property.
        WARNING: Ignored `box-shadow:0 0 0 .2rem rgba(52,58,64,0.5)` at 1:10763, unknown property.
        WARNING: Ignored `box-shadow:0 0 0 .2rem rgba(52,58,64,0.5)` at 1:11238, unknown property.
        WARNING: Ignored `box-shadow:0 0 0 .2rem rgba(0,123,255,0.5)` at 1:11517, unknown property.
        WARNING: Ignored `box-shadow:0 0 0 .2rem rgba(0,123,255,0.5)` at 1:12056, unknown property.
        WARNING: Ignored `box-shadow:0 0 0 .2rem rgba(108,117,125,0.5)` at 1:12346, unknown property.
        WARNING: Ignored `box-shadow:0 0 0 .2rem rgba(108,117,125,0.5)` at 1:12903, unknown property.
        WARNING: Ignored `box-shadow:0 0 0 .2rem rgba(40,167,69,0.5)` at 1:13185, unknown property.
        WARNING: Ignored `box-shadow:0 0 0 .2rem rgba(40,167,69,0.5)` at 1:13724, unknown property.
        WARNING: Ignored `box-shadow:0 0 0 .2rem rgba(23,162,184,0.5)` at 1:13989, unknown property.
        WARNING: Ignored `box-shadow:0 0 0 .2rem rgba(23,162,184,0.5)` at 1:14505, unknown property.
        WARNING: Ignored `box-shadow:0 0 0 .2rem rgba(255,193,7,0.5)` at 1:14789, unknown property.
        WARNING: Ignored `box-shadow:0 0 0 .2rem rgba(255,193,7,0.5)` at 1:15331, unknown property.
        WARNING: Ignored `box-shadow:0 0 0 .2rem rgba(220,53,69,0.5)` at 1:15606, unknown property.
        WARNING: Ignored `box-shadow:0 0 0 .2rem rgba(220,53,69,0.5)` at 1:16137, unknown property.
        WARNING: Ignored `box-shadow:0 0 0 .2rem rgba(248,249,250,0.5)` at 1:16410, unknown property.
        WARNING: Ignored `box-shadow:0 0 0 .2rem rgba(248,249,250,0.5)` at 1:16938, unknown property.
        WARNING: Ignored `box-shadow:0 0 0 .2rem rgba(52,58,64,0.5)` at 1:17205, unknown property.
        WARNING: Ignored `box-shadow:0 0 0 .2rem rgba(52,58,64,0.5)` at 1:17719, unknown property.
        WARNING: Ignored `box-shadow:none` at 1:17910, unknown property.
        WARNING: Ignored `pointer-events:none` at 1:18004, unknown property.
        WARNING: Ignored `pointer-events:auto` at 1:18479, unknown property.
        WARNING: Ignored `display:-ms-flexbox` at 1:18693, invalid value.
        WARNING: Ignored `border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0` at 1:19536, invalid value.
        WARNING: Ignored `border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)` at 1:19792, invalid value.
        WARNING: Ignored `border-top-left-radius:calc(.25rem - 1px)` at 1:20201, invalid value.
        WARNING: Ignored `border-top-right-radius:calc(.25rem - 1px)` at 1:20243, invalid value.
        WARNING: Ignored `border-bottom-left-radius:calc(.25rem - 1px)` at 1:20313, invalid value.
        WARNING: Ignored `border-bottom-right-radius:calc(.25rem - 1px)` at 1:20358, invalid value.
        WARNING: Ignored `box-shadow:0 0.5rem 1rem rgba(0,0,0,0.15) ` at 1:20441, unknown property.
        WARNING: Expected a media type, got '(min-width: 576px)'
        WARNING: Invalid media type ' (min-width: 576px)' the whole @media rule was ignored at 1:23995.
        WARNING: Expected a media type, got '(min-width: 768px)'
        WARNING: Invalid media type ' (min-width: 768px)' the whole @media rule was ignored at 1:24049.
        WARNING: Expected a media type, got '(min-width: 992px)'
        WARNING: Invalid media type ' (min-width: 992px)' the whole @media rule was ignored at 1:24103.
        WARNING: Expected a media type, got '(min-width: 1200px)'
        WARNING: Invalid media type ' (min-width: 1200px)' the whole @media rule was ignored at 1:24157.
        WARNING: Expected a media type, got '(min-width: 576px)'
        WARNING: Invalid media type ' (min-width: 576px)' the whole @media rule was ignored at 1:24369.
        WARNING: Expected a media type, got '(min-width: 768px)'
        WARNING: Invalid media type ' (min-width: 768px)' the whole @media rule was ignored at 1:24437.
        WARNING: Expected a media type, got '(min-width: 992px)'
        WARNING: Invalid media type ' (min-width: 992px)' the whole @media rule was ignored at 1:24519.
        WARNING: Expected a media type, got '(min-width: 1200px)'
        WARNING: Invalid media type ' (min-width: 1200px)' the whole @media rule was ignored at 1:24615.
        WARNING: Ignored `display:-ms-flexbox` at 1:24732, invalid value.
        WARNING: Expected a media type, got '(min-width: 576px)'
        WARNING: Invalid media type ' (min-width: 576px)' the whole @media rule was ignored at 1:25478.
        WARNING: Expected a media type, got '(min-width: 768px)'
        WARNING: Invalid media type ' (min-width: 768px)' the whole @media rule was ignored at 1:26465.
        WARNING: Expected a media type, got '(min-width: 992px)'
        WARNING: Invalid media type ' (min-width: 992px)' the whole @media rule was ignored at 1:27452.
        WARNING: Expected a media type, got '(min-width: 1200px)'
        WARNING: Invalid media type ' (min-width: 1200px)' the whole @media rule was ignored at 1:28439.
        WARNING: Ignored `display:-ms-flexbox ` at 1:29435, invalid value.
        WARNING: Anchor defined twice: 'id1'
        WARNING: Anchor defined twice: 'id1'
        WARNING: Anchor defined twice: 'id1'
        WARNING: Anchor defined twice: 'id1'
        WARNING: Anchor defined twice: 'id2'
        WARNING: Anchor defined twice: 'about'
        WARNING: Anchor defined twice: 'intended-audience'
        WARNING: Anchor defined twice: 'convention'
        WARNING: Anchor defined twice: 'definitions-and-acronyms'
        WARNING: Anchor defined twice: 'id1'
        WARNING: Anchor defined twice: 'id1'
        WARNING: Anchor defined twice: 'id2'
        WARNING: Anchor defined twice: 'id3'
        WARNING: Anchor defined twice: 'id1'
        WARNING: Anchor defined twice: 'about'
        WARNING: Anchor defined twice: 'intended-audience'
        WARNING: Anchor defined twice: 'convention'
        WARNING: Anchor defined twice: 'definitions-and-acronyms'
        WARNING: Anchor defined twice: 'id1'
        WARNING: Anchor defined twice: 'id1'
        WARNING: Anchor defined twice: 'id2'
        WARNING: Anchor defined twice: 'id3'
        WARNING: Anchor defined twice: 'id4'
        WARNING: Anchor defined twice: 'id1'
        WARNING: Anchor defined twice: 'id2'
        WARNING: Anchor defined twice: 'id1'
        WARNING: Anchor defined twice: 'id2'
        WARNING: Anchor defined twice: 'id3'
        WARNING: Anchor defined twice: 'id4'
        WARNING: Anchor defined twice: 'id1'
        WARNING: Anchor defined twice: 'id2'
        WARNING: Anchor defined twice: 'id3'
        WARNING: Anchor defined twice: 'id4'
        WARNING: Anchor defined twice: 'id1'
        WARNING: Anchor defined twice: 'id2'
        WARNING: Anchor defined twice: 'id3'
        WARNING: Anchor defined twice: 'id4'
        WARNING: Anchor defined twice: 'id5'
        WARNING: Anchor defined twice: 'id6'
        WARNING: Anchor defined twice: 'id1'
        ERROR: No anchor # for internal URI reference
        ERROR: No anchor # for internal URI reference
        ERROR: No anchor # for internal URI reference
        WARNING: Unsupported computed value "inherit" set in variable '--sd-color-card-text' for property 'color'.
        WARNING: Unsupported computed value "inherit" set in variable '--sd-color-card-text' for property 'color'.
        build succeeded, 9 warnings.
    
    The HTML page is in build/simplepdf.
  6. Opened the PDF in the build folder, and I still have the same issue in the image (as attached above).

UPDATE: Since it is related to the image, the cover page image is also very large.

1kastner commented 1 year ago

@danwos thank you very much for sharing the project! I have just updated simplepdf to commit d47a2657a8753a713d57d57f4aaf1944bcddfb8d. I cleand the output directory with make clean and rebuild everything. Somehow, I did not see any improvement. I could not redo the steps which have obviously worked in your case. How did you build the demo PDF?

danwos commented 1 year ago

To build the demo:

@sachin-suresh-rapyuta Thanks for the detailed report. It all looks good. Your image is only embedded inside a list, but this should not make trouble. But I will add such a case to our DEMO PDF.

As you have reported problems also with the cover image, I'm totally lost and can't even imagine what the problem could be.

Can I ask you to create the DEMO PDF as well on your system? This is needed for such complex problems, as we all then work on the same data and can reproduce stuff on our side. You can compare then the critical parts with the one created by our CI: https://sphinx-simplepdf.readthedocs.io/en/latest/

@1kastner: I wish the debug option from #24 would be already available :)

Thanks all for helping to hunt this bug down :)

danwos commented 1 year ago

Ohh wait, what kind of operating system are you all using? We had already an Issue, where on macOS not all dependencies got installed. Maybe this is also here the case and some libs for rescaling images got not installed.

I'm working on Linux (ManjaroOS) and also the CI (ReadTheDocs) is running on Linux (ubuntu).

For PDF generation, the weasyprint library is used: https://github.com/Kozea/WeasyPrint/blob/master/pyproject.toml

There are the following dependencies defined: image

Especially Pillow is often used for rescaling images. Maybe this is not installed or not in the right version.

sachin-suresh-rapyuta commented 1 year ago

Can you paste here the requirements.txt file. Hope I should declare all the above dependencies in this file and run pip3 install? By the way, I am using Ubuntu 20.04 LTS.

And, to build the DEMO PDF on my system, is it sufficient to run the above commands you listed in your last comment?

UPDATE:

I followed the above steps to build the demo (Yes, I used: pip3 install -r doc-requirements.txt). I see in the "Demo Versions.pdf" page 61, the SQLite Database image still appears to be out of page.

danwos commented 1 year ago

There was one step missing in my above commands. I just added a doc-requirements file to the demo folder, this must be installed as well (I updated my above description and will also add it to our docs).

danwos commented 1 year ago

Thanks for the test. On my machine, the DEMO PDF looks like this: image Source: https://sphinx-simplepdf.readthedocs.io/en/latest/_static/Sphinx-SimplePDF-DEMO.pdf (CI Build)

Does this CI version of DEMO PDF look on your machine the same? I just want to be sure that it is not a readers problem.

sachin-suresh-rapyuta commented 1 year ago

No, it's a completely different PDF file I get (the one with the RED cover page; attached for reference). Yours had a GREEN cover page. I followed the exact same commands above and this is the Demo Versions.pdf I get from the _build folder. Demo Versions.pdf. Check page 61 for image issue.

danwos commented 1 year ago

Ohh wow, that's really strange. It looks like no config from conf.py was read for Sphinx-SimplePDF, as "red" is the default value, if nothing got configured.

I have to set up a clean system on my side, to be sure that I have not missed any steps or some old stuff is still in my env. (But it's working on the CI, which always makes a clean build...)

sachin-suresh-rapyuta commented 1 year ago

I guess so. Let me know if you make any changes or if something I have to do to help in this?

danwos commented 1 year ago

Ok, I made some tests with a completely clean Python ENV and installed everything from scratch. It is working on my side as aspected, which is good but mostly bad for finding the bug.

Therefore I added the debug-option from #24. Docs: https://sphinx-simplepdf.readthedocs.io/en/latest/configuration.html#simplepldf-debug Result: image

Can you please update your local main branch and build the DEMO project again? The debug option is already set for it.

Then please check there the (important) python package and see if there are some flashy differences.

sachin-suresh-rapyuta commented 1 year ago

I took the update from the main branch and in the demo folder, I ran sphinx-build -a -E -b simplepdf . _build/. I see the simplepdf_debug = True in conf.py. But the geenrated PDF does not have debug info at the last page. Attaching the PDF. Sphinx-SimplePDF-DEMO.pdf

danwos commented 1 year ago

That's all strange. Your installation fetches the latest content (rst) changes but does update the installed theme-files. To be sure, have you reinstalled it after update? pip install -e ..

I really can't say what the problem is.

sachin-suresh-rapyuta commented 1 year ago

I have attached my current demo folder state. Can you try to build the demo PDF from your end ? Yes, I did run: pip3 install -r doc-requirements.txt demo.zip

1kastner commented 1 year ago

I set up a blank virtual environment and ran the steps described in https://github.com/useblocks/sphinx-simplepdf/issues/9#issuecomment-1247731278. The PDF I generate looks as follows:

Sphinx-SimplePDF-DEMO.pdf

On the first page, there is a frog and it is in green. That is a good sign I guess. But then there are issues like these in my Adobe Acrobat Reader:

grafik

grafik

The logs are as follows:

(my-env) PS C:\git-repos\PDF-Generation\sphinx-simplepdf\demo> sphinx-build -a -E -b simplepdf . _build/
Running Sphinx v5.1.1
making output directory... done
Setting theme to sphinx_simplepdf
Generating css files from scss-templates
building [mo]: all of 0 po files
building [simplepdf]: all source files
updating environment: [new config] 14 added, 0 changed, 0 removed
reading sources... [100%] structure
Copying static files for sphinx-needs datatables support...C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\datatables.min.css C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\datatables.min.js C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\datatables_loader.js C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\sphinx_needs_collapse.js C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\Buttons-1.5.1\css\buttons.dataTables.min.css C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\Buttons-1.5.1\css\common.scss C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\Buttons-1.5.1\css\mixins.scss C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\Buttons-1.5.1\js\buttons.colVis.min.js C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\Buttons-1.5.1\js\buttons.flash.min.js C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\Buttons-1.5.1\js\buttons.html5.js C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\Buttons-1.5.1\js\buttons.html5.min.js C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\Buttons-1.5.1\js\buttons.print.min.js C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\Buttons-1.5.1\js\dataTables.buttons.min.js C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\Buttons-1.5.1\swf\flashExport.swf C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\ColReorder-1.4.1\css\colReorder.dataTables.min.css C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\ColReorder-1.4.1\js\dataTables.colReorder.min.js C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\DataTables-1.10.16\css\jquery.dataTables.min.css C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\DataTables-1.10.16\images\sort_asc.png C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\DataTables-1.10.16\images\sort_asc_disabled.png C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\DataTables-1.10.16\images\sort_both.png C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\DataTables-1.10.16\images\sort_desc.png C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\DataTables-1.10.16\images\sort_desc_disabled.png C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\DataTables-1.10.16\js\jquery.dataTables.min.js C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\FixedColumns-3.2.4\css\fixedColumns.dataTables.min.css C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\FixedColumns-3.2.4\js\dataTables.fixedColumns.min.js C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\FixedHeader-3.1.3\css\fixedHeader.dataTables.min.css C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\FixedHeader-3.1.3\js\dataTables.fixedHeader.min.js C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\JSZip-2.5.0\jszip.min.js C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\pdfmake-0.1.32\pdfmake.min.js C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\pdfmake-0.1.32\vfs_fonts.js C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\Responsive-2.2.1\css\responsive.dataTables.min.css C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\Responsive-2.2.1\js\dataTables.responsive.min.js C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\Scroller-1.4.4\css\scroller.dataTables.min.css C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\Scroller-1.4.4\js\dataTables.scroller.min.js
Copying static files for sphinx-needs custom style support...[ 50%] C:\git-repos\PDF-Generation\.venv-simplepdf\lib\siteCopying static files for sphinx-needs custom style support...[ 75%] C:\git-repos\PDF-Generation\.venv-simplepdf\lib\siteCopying static files for sphinx-needs custom style support...[100%] C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\css\modern\styles.css
C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\test_py_module\test.py:docstring of test_py_module.test.Foo:17: WARNING: Footnote [1] is not referenced.
C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\demo.rst:265: WARNING: Footnote [4] is not referenced.
C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\demo.rst:18: ERROR: Undefined substitution referenced: "problematic".
C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\demo.rst:271: WARNING: duplicate citation Citation, other instance in C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\api.rst
C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\demo.rst:265: ERROR: Unknown target name: "5".
C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\demo.rst:318: ERROR: Unknown target name: "hyperlink reference without a target".
looking for now-outdated files... none found
pickling environment... done
checking consistency... done
preparing documents... done
assembling single document... structure demo lists_tables api sphinx_needs level1/index level1/level2/index level1/level2/level3/index level1/level2/level3/level4/index level1/level2/level3/level4/level5/index level1/level2/level3/level4/level5/level6/index long images C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\demo.rst:279: WARNING: citation not found: nonexistent
done
writing... done
writing additional files... done
copying images... [100%] _static/phetus_2560x2176.jpg
copying downloadable files... [100%] _static/yi_jing_01_chien.jpg
copying static files... done
copying extra files... done
dumping object inventory... done
WARNING: Ignored `text-shadow: none` at 654:3, unknown property.
WARNING: Ignored `flex-basis: unset` at 753:7, invalid value.
WARNING: Ignored `min-width: unset` at 786:3, invalid value.
WARNING: Ignored `max-width: unset` at 787:3, invalid value.
WARNING: Ignored `white-space: -o-pre-wrap` at 810:3, invalid value.
WARNING: Error: Expected <ident> for declaration name, got literal. at 13:645.
WARNING: Error: Expected <ident> for declaration name, got literal. at 13:8140.
WARNING: Ignored `zoom:1` at 13:8148, unknown property.
WARNING: Error: Expected <ident> for declaration name, got literal. at 13:8720.
WARNING: Ignored `background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #fff), color-stop(100%, #dcdcdc))` at 13:9010, invalid value.
WARNING: Ignored `background:-webkit-linear-gradient(top, #fff 0%, #dcdcdc 100%)` at 13:9118, invalid value.
WARNING: Ignored `background:-moz-linear-gradient(top, #fff 0%, #dcdcdc 100%)` at 13:9181, invalid value.
WARNING: Ignored `background:-ms-linear-gradient(top, #fff 0%, #dcdcdc 100%)` at 13:9241, invalid value.
WARNING: Ignored `background:-o-linear-gradient(top, #fff 0%, #dcdcdc 100%)` at 13:9300, invalid value.
WARNING: Ignored `box-shadow:none` at 13:9722, unknown property.
WARNING: Ignored `background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #585858), color-stop(100%, #111))` at 13:9872, invalid value.
WARNING: Ignored `background:-webkit-linear-gradient(top, #585858 0%, #111 100%)` at 13:9980, invalid value.
WARNING: Ignored `background:-moz-linear-gradient(top, #585858 0%, #111 100%)` at 13:10043, invalid value.
WARNING: Ignored `background:-ms-linear-gradient(top, #585858 0%, #111 100%)` at 13:10103, invalid value.
WARNING: Ignored `background:-o-linear-gradient(top, #585858 0%, #111 100%)` at 13:10162, invalid value.
WARNING: Ignored `background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #2b2b2b), color-stop(100%, #0c0c0c))` at 13:10384, invalid value.
WARNING: Ignored `background:-webkit-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%)` at 13:10495, invalid value.
WARNING: Ignored `background:-moz-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%)` at 13:10561, invalid value.
WARNING: Ignored `background:-ms-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%)` at 13:10624, invalid value.
WARNING: Ignored `background:-o-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%)` at 13:10686, invalid value.
WARNING: Ignored `box-shadow:inset 0 0 3px #111` at 13:10811, unknown property.
WARNING: Ignored `background:-webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255,255,255,0)), color-stop(25%, rgba(255,255,255,0.9)), color-stop(75%, rgba(255,255,255,0.9)), color-stop(100%, rgba(255,255,255,0)))` at 13:11115, invalid value.
WARNING: Ignored `background:-webkit-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%)` at 13:11328, invalid value.
WARNING: Ignored `background:-moz-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%)` at 13:11473, invalid value.
WARNING: Ignored `background:-ms-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%)` at 13:11615, invalid value.
WARNING: Ignored `background:-o-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%)` at 13:11756, invalid value.
WARNING: Error: Expected <ident> for declaration name, got literal. at 13:12362.
WARNING: Expected a media type, got 'screen/**/and/**/(max-width: 767px)'
WARNING: Invalid media type ' screen and (max-width: 767px)' the whole @media rule was ignored at 13:13576.
WARNING: Expected a media type, got 'screen/**/and/**/(max-width: 640px)'
WARNING: Invalid media type ' screen and (max-width: 640px)' the whole @media rule was ignored at 13:13779.
WARNING: Ignored `box-shadow:3px 3px 8px rgba(0,0,0,0.3)` at 16:556, unknown property.
WARNING: Ignored `background-image:-webkit-linear-gradient(top, #fff 0%, #e9e9e9 100%)` at 16:1122, invalid value.
WARNING: Ignored `background-image:-moz-linear-gradient(top, #fff 0%, #e9e9e9 100%)` at 16:1191, invalid value.
WARNING: Ignored `background-image:-ms-linear-gradient(top, #fff 0%, #e9e9e9 100%)` at 16:1257, invalid value.
WARNING: Ignored `background-image:-o-linear-gradient(top, #fff 0%, #e9e9e9 100%)` at 16:1322, invalid value.
WARNING: Ignored `filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr="white", EndColorStr="#e9e9e9")` at 16:1453, unknown property.
WARNING: Ignored `user-select:none` at 16:1632, unknown property.
WARNING: Ignored `background-image:-webkit-linear-gradient(top, #fff 0%, #f9f9f9 100%)` at 16:1829, invalid value.
WARNING: Ignored `background-image:-moz-linear-gradient(top, #fff 0%, #f9f9f9 100%)` at 16:1898, invalid value.
WARNING: Ignored `background-image:-ms-linear-gradient(top, #fff 0%, #f9f9f9 100%)` at 16:1964, invalid value.
WARNING: Ignored `background-image:-o-linear-gradient(top, #fff 0%, #f9f9f9 100%)` at 16:2029, invalid value.
WARNING: Ignored `filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr="#ffffff", EndColorStr="#f9f9f9")` at 16:2160, unknown property.
WARNING: Ignored `background-image:-webkit-linear-gradient(top, #f3f3f3 0%, #e2e2e2 100%)` at 16:2516, invalid value.
WARNING: Ignored `background-image:-moz-linear-gradient(top, #f3f3f3 0%, #e2e2e2 100%)` at 16:2588, invalid value.
WARNING: Ignored `background-image:-ms-linear-gradient(top, #f3f3f3 0%, #e2e2e2 100%)` at 16:2657, invalid value.
WARNING: Ignored `background-image:-o-linear-gradient(top, #f3f3f3 0%, #e2e2e2 100%)` at 16:2725, invalid value.
WARNING: Ignored `filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr="#f3f3f3", EndColorStr="#e2e2e2")` at 16:2862, unknown property.
WARNING: Ignored `box-shadow:inset 1px 1px 3px #999999` at 16:2975, unknown property.
WARNING: Ignored `box-shadow:inset 1px 1px 3px #999999` at 16:3356, unknown property.
WARNING: Ignored `background-image:-webkit-linear-gradient(top, #eaeaea 0%, #ccc 100%)` at 16:3418, invalid value.
WARNING: Ignored `background-image:-moz-linear-gradient(top, #eaeaea 0%, #ccc 100%)` at 16:3487, invalid value.
WARNING: Ignored `background-image:-ms-linear-gradient(top, #eaeaea 0%, #ccc 100%)` at 16:3553, invalid value.
WARNING: Ignored `background-image:-o-linear-gradient(top, #eaeaea 0%, #ccc 100%)` at 16:3618, invalid value.
WARNING: Ignored `filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr="#eaeaea", EndColorStr="#cccccc")` at 16:3749, unknown property.
WARNING: Ignored `background-image:-webkit-linear-gradient(top, #f9f9f9 0%, #e0e0e0 100%)` at 16:4097, invalid value.
WARNING: Ignored `background-image:-moz-linear-gradient(top, #f9f9f9 0%, #e0e0e0 100%)` at 16:4169, invalid value.
WARNING: Ignored `background-image:-ms-linear-gradient(top, #f9f9f9 0%, #e0e0e0 100%)` at 16:4238, invalid value.
WARNING: Ignored `background-image:-o-linear-gradient(top, #f9f9f9 0%, #e0e0e0 100%)` at 16:4306, invalid value.
WARNING: Ignored `filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr="#f9f9f9", EndColorStr="#e0e0e0")` at 16:4443, unknown property.
WARNING: Ignored `text-shadow:0 1px 0 #c4def1` at 16:4687, unknown property.
WARNING: Ignored `background-image:-webkit-linear-gradient(top, #bddef4 0%, #79ace9 100%)` at 16:4753, invalid value.
WARNING: Ignored `background-image:-moz-linear-gradient(top, #bddef4 0%, #79ace9 100%)` at 16:4825, invalid value.
WARNING: Ignored `background-image:-ms-linear-gradient(top, #bddef4 0%, #79ace9 100%)` at 16:4894, invalid value.
WARNING: Ignored `background-image:-o-linear-gradient(top, #bddef4 0%, #79ace9 100%)` at 16:4962, invalid value.
WARNING: Ignored `filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr="#bddef4", EndColorStr="#79ace9")` at 16:5099, unknown property.
WARNING: Ignored `box-shadow:3px 3px 5px rgba(0,0,0,0.3)` at 16:5559, unknown property.
WARNING: Ignored `background-image:-webkit-linear-gradient(top, #f0f0f0 0%, #dadada 100%)` at 16:6319, invalid value.
WARNING: Ignored `background-image:-moz-linear-gradient(top, #f0f0f0 0%, #dadada 100%)` at 16:6391, invalid value.
WARNING: Ignored `background-image:-ms-linear-gradient(top, #f0f0f0 0%, #dadada 100%)` at 16:6460, invalid value.
WARNING: Ignored `background-image:-o-linear-gradient(top, #f0f0f0 0%, #dadada 100%)` at 16:6528, invalid value.
WARNING: Ignored `filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr="#f0f0f0", EndColorStr="#dadada")` at 16:6665, unknown property.
WARNING: Ignored `box-shadow:inset 1px 1px 3px #666` at 16:6778, unknown property.
WARNING: Ignored `background:-ms-radial-gradient(center, ellipse farthest-corner, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.7) 100%)` at 16:7819, invalid value.
WARNING: Ignored `background:-moz-radial-gradient(center, ellipse farthest-corner, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.7) 100%)` at 16:7925, invalid value.
WARNING: Ignored `background:-o-radial-gradient(center, ellipse farthest-corner, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.7) 100%)` at 16:8032, invalid value.
WARNING: Ignored `background:-webkit-gradient(radial, center center, 0, center center, 497, color-stop(0, rgba(0,0,0,0.3)), color-stop(1, rgba(0,0,0,0.7)))` at 16:8137, invalid value.
WARNING: Ignored `background:-webkit-radial-gradient(center, ellipse farthest-corner, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.7) 100%)` at 16:8275, invalid value.
WARNING: Expected a media type, got 'screen/**/and/**/(max-width: 640px)'
WARNING: Invalid media type ' screen and (max-width: 640px)' the whole @media rule was ignored at 16:8502.
WARNING: Ignored `box-shadow:0 0 3px #444` at 28:907, unknown property.
WARNING: Ignored `box-shadow:0 0 3px #444` at 28:2080, unknown property.
WARNING: Ignored `box-shadow:0 12px 30px rgba(0,0,0,0.6)` at 28:3347, unknown property.
WARNING: Expected a media type, got 'screen/**/and/**/(max-width: 767px)'
WARNING: Invalid media type ' screen and (max-width: 767px)' the whole @media rule was ignored at 28:3845.
WARNING: Ignored `overflow-x: auto` at 9:3, unknown property.
WARNING: Ignored `overflow-x: auto` at 20:5, unknown property.
WARNING: Ignored `box-shadow: None ` at 92:5, unknown property.
WARNING: Ignored `overflow-x: auto` at 113:5, unknown property.
WARNING: Ignored `text-orientation: upright` at 5:5, unknown property.
WARNING: Ignored `writing-mode: sideways-lr` at 6:5, unknown property.
WARNING: Ignored `text-orientation: upright` at 11:5, unknown property.
WARNING: Ignored `writing-mode: sideways-rl` at 12:5, unknown property.
WARNING: Ignored `box-shadow: None` at 19:5, unknown property.
WARNING: Ignored `box-shadow: None` at 31:5, unknown property.
WARNING: Anchor defined twice: 'table-of-contents'
WARNING: Anchor defined twice: 'id1'
WARNING: Anchor defined twice: 'id2'
WARNING: Anchor defined twice: 'id3'
WARNING: Anchor defined twice: 'id4'
WARNING: Anchor defined twice: 'id5'
WARNING: Anchor defined twice: 'id6'
WARNING: Anchor defined twice: 'id7'
WARNING: Anchor defined twice: 'id8'
WARNING: Anchor defined twice: 'id9'
WARNING: Anchor defined twice: 'id10'
WARNING: Anchor defined twice: 'id11'
WARNING: Anchor defined twice: 'table-of-contents'
WARNING: Anchor defined twice: 'id17'
WARNING: Anchor defined twice: 'id18'
WARNING: Anchor defined twice: 'id19'
WARNING: Anchor defined twice: 'id22'
WARNING: Anchor defined twice: 'id23'
WARNING: Anchor defined twice: 'id24'
WARNING: Anchor defined twice: 'id25'
WARNING: Anchor defined twice: 'id27'
WARNING: Anchor defined twice: 'id28'
WARNING: Anchor defined twice: 'id29'
WARNING: Anchor defined twice: 'id30'
WARNING: Anchor defined twice: 'id31'
WARNING: Anchor defined twice: 'id32'
WARNING: Anchor defined twice: 'id33'
WARNING: Anchor defined twice: 'id34'
WARNING: Anchor defined twice: 'id11'
WARNING: Anchor defined twice: 'id12'
WARNING: Anchor defined twice: 'id13'
WARNING: Anchor defined twice: 'id14'
WARNING: Anchor defined twice: 'id15'
WARNING: Anchor defined twice: 'id16'
WARNING: Anchor defined twice: 'table-of-contents'
WARNING: Anchor defined twice: 'id2'
WARNING: Anchor defined twice: 'id3'
WARNING: Anchor defined twice: 'id4'
WARNING: Anchor defined twice: 'id5'
WARNING: Anchor defined twice: 'id6'
WARNING: Anchor defined twice: 'id7'
WARNING: Anchor defined twice: 'id8'
WARNING: Anchor defined twice: 'id1'
WARNING: Anchor defined twice: 'citation'
WARNING: Anchor defined twice: 'id1'
WARNING: Anchor defined twice: 'table-of-contents'
WARNING: Anchor defined twice: 'id9'
WARNING: Anchor defined twice: 'id10'
WARNING: Anchor defined twice: 'id11'
WARNING: Anchor defined twice: 'id12'
WARNING: Anchor defined twice: 'id13'
WARNING: Anchor defined twice: 'id14'
WARNING: Anchor defined twice: 'id15'
WARNING: Anchor defined twice: 'id16'
WARNING: Anchor defined twice: 'id17'
WARNING: Anchor defined twice: 'id18'
WARNING: Anchor defined twice: 'id19'
WARNING: Anchor defined twice: 'id20'
WARNING: Anchor defined twice: 'id21'
WARNING: Anchor defined twice: 'id22'
WARNING: Anchor defined twice: 'id23'
WARNING: Anchor defined twice: 'id24'
WARNING: Anchor defined twice: 'id25'
WARNING: Anchor defined twice: 'id26'
WARNING: Anchor defined twice: 'id27'
WARNING: Anchor defined twice: 'id28'
WARNING: Anchor defined twice: 'id29'
WARNING: Anchor defined twice: 'id30'
WARNING: Anchor defined twice: 'id31'
WARNING: Anchor defined twice: 'id32'
WARNING: Anchor defined twice: 'id33'
WARNING: Anchor defined twice: 'id34'
WARNING: Anchor defined twice: 'id35'
WARNING: Anchor defined twice: 'id36'
WARNING: Anchor defined twice: 'id37'
WARNING: Anchor defined twice: 'id38'
WARNING: Anchor defined twice: 'id39'
WARNING: Anchor defined twice: 'id40'
WARNING: Anchor defined twice: 'id41'
WARNING: Anchor defined twice: 'id42'
WARNING: Anchor defined twice: 'id43'
WARNING: Anchor defined twice: 'id44'
WARNING: Anchor defined twice: 'id45'
WARNING: Anchor defined twice: 'id46'
WARNING: Anchor defined twice: 'id1'
WARNING: Anchor defined twice: 'id2'
WARNING: Anchor defined twice: 'id3'
WARNING: Anchor defined twice: 'id4'
WARNING: Anchor defined twice: 'id5'
WARNING: Anchor defined twice: 'id6'
WARNING: Anchor defined twice: 'id7'
WARNING: Anchor defined twice: 'id8'
WARNING: Anchor defined twice: 'images'
ERROR: No anchor # for internal URI reference
ERROR: No anchor #id62 for internal URI reference
ERROR: No anchor #id62 for internal URI reference
ERROR: No anchor #id63 for internal URI reference
ERROR: No anchor #id63 for internal URI reference
ERROR: No anchor # for internal URI reference
ERROR: No anchor # for internal URI reference

Checking sphinx-needs warnings
build succeeded, 7 warnings.

The HTML page is in _build.

Then I thought whether the right simplepdf version is used. This is the output:

(.venv-simplepdf) PS C:\git-repos\PDF-Generation\sphinx-simplepdf\demo> python
Python 3.9.7 (tags/v3.9.7:1016ef3, Aug 30 2021, 20:19:38) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sphinx_simplepdf
>>> dir(sphinx_simplepdf)
['IfBuilder', 'IfBuilderDirective', 'IfInclude', 'IfIncludeDirective', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', 'directives', 'setup']
>>> sphinx_simplepdf.__file__
'C:\\git-repos\\PDF-Generation\\.venv-simplepdf\\lib\\site-packages\\sphinx_simplepdf\\__init__.py'
>>> exit()
(.venv-simplepdf) PS C:\git-repos\PDF-Generation\sphinx-simplepdf\demo> pip show sphinx_simplepdf
Name: sphinx-simplepdf
Version: 1.4.0
Summary: A specific theme for Sphinx-Needs
Home-page: https://github.com/useblocks/sphinx-simplepdf
Author: team useblocks
Author-email: info@useblocks.com
License: Commercial
Location: c:\git-repos\pdf-generation\.venv-simplepdf\lib\site-packages
Requires: sphinx, weasyprint, libsass, beautifulsoup4
Required-by:
(.venv-simplepdf) PS C:\git-repos\PDF-Generation\sphinx-simplepdf\demo>

My only explanation is that the sphinx builder possibly imports the wrong simplepdf version from another Python environment even though I am in a virtualenv?

sachin-suresh-rapyuta commented 1 year ago

Ah, I finally got the green cover page one with debug info if I run all the commands from the virtualenv. Thats strange!! Why not in the demo folder? Why not in my project folder? Sphinx-SimplePDF-DEMO.pdf

FYI: The image in page 63 still takes extra space.

1kastner commented 1 year ago

I ran the command sphinx-build -vvv -a -E -b simplepdf . _build/. I could verify that the correct version from the virtualenv is used.

``` (.venv-simplepdf) PS C:\git-repos\PDF-Generation\sphinx-simplepdf\demo> sphinx-build -vvv -a -E -b simplepdf . _build/ Running Sphinx v5.1.1 [app] setting up extension: 'sphinx.addnodes' [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] setting up extension: 'sphinx.builders.changes' [app] adding builder: [app] setting up extension: 'sphinx.builders.epub3' [app] adding builder: [app] adding config value: ('epub_basename', . at 0x000001D26B0EF0D0>, False, ()) [app] adding config value: ('epub_version', 3.0, 'epub', ()) [app] adding config value: ('epub_theme', 'epub', 'epub', ()) [app] adding config value: ('epub_theme_options', {}, 'epub', ()) [app] adding config value: ('epub_title', . at 0x000001D26A5603A0>, 'epub', ()) [app] adding config value: ('epub_author', . at 0x000001D26B0EF160>, 'epub', ()) [app] adding config value: ('epub_language', . at 0x000001D26A560160>, 'epub', ()) [app] adding config value: ('epub_publisher', . at 0x000001D26B0EF1F0>, 'epub', ()) [app] adding config value: ('epub_copyright', . at 0x000001D26A5604C0>, 'epub', ()) [app] adding config value: ('epub_identifier', 'unknown', 'epub', ()) [app] adding config value: ('epub_scheme', 'unknown', 'epub', ()) [app] adding config value: ('epub_uid', 'unknown', 'env', ()) [app] adding config value: ('epub_cover', (), 'env', ()) [app] adding config value: ('epub_guide', (), 'env', ()) [app] adding config value: ('epub_pre_files', [], 'env', ()) [app] adding config value: ('epub_post_files', [], 'env', ()) [app] adding config value: ('epub_css_files', . at 0x000001D26A5601F0>, 'epub', ()) [app] adding config value: ('epub_exclude_files', [], 'env', ()) [app] adding config value: ('epub_tocdepth', 3, 'env', ()) [app] adding config value: ('epub_tocdup', True, 'env', ()) [app] adding config value: ('epub_tocscope', 'default', 'env', ()) [app] adding config value: ('epub_fix_images', False, 'env', ()) [app] adding config value: ('epub_max_image_width', 0, 'env', ()) [app] adding config value: ('epub_show_urls', 'inline', 'epub', ()) [app] adding config value: ('epub_use_index', . at 0x000001D26B0EF310>, 'epub', ()) [app] adding config value: ('epub_description', 'unknown', 'epub', ()) [app] adding config value: ('epub_contributor', 'unknown', 'epub', ()) [app] adding config value: ('epub_writing_mode', 'horizontal', 'epub', ) [app] connecting event 'config-inited' (800): [id=0] [app] connecting event 'builder-inited' (500): [id=1] [app] setting up extension: 'sphinx.builders.dirhtml' [app] setting up extension: 'sphinx.builders.html' [app] adding builder: [app] adding config value: ('html_theme', 'alabaster', 'html', ()) [app] adding config value: ('html_theme_path', [], 'html', ()) [app] adding config value: ('html_theme_options', {}, 'html', ()) [app] adding config value: ('html_title', . at 0x000001D26B0EF550>, 'html', []) [app] adding config value: ('html_short_title', . at 0x000001D26B0EF700>, 'html', ()) [app] adding config value: ('html_style', None, 'html', [, ]) [app] adding config value: ('html_logo', None, 'html', []) [app] adding config value: ('html_favicon', None, 'html', []) [app] adding config value: ('html_css_files', [], 'html', ()) [app] adding config value: ('html_js_files', [], 'html', ()) [app] adding config value: ('html_static_path', [], 'html', ()) [app] adding config value: ('html_extra_path', [], 'html', ()) [app] adding config value: ('html_last_updated_fmt', None, 'html', []) [app] adding config value: ('html_sidebars', {}, 'html', ()) [app] adding config value: ('html_additional_pages', {}, 'html', ()) [app] adding config value: ('html_domain_indices', True, 'html', []) [app] adding config value: ('html_add_permalinks', , 'html', ()) [app] adding config value: ('html_permalinks', True, 'html', ()) [app] adding config value: ('html_permalinks_icon', '¶', 'html', ()) [app] adding config value: ('html_use_index', True, 'html', ()) [app] adding config value: ('html_split_index', False, 'html', ()) [app] adding config value: ('html_copy_source', True, 'html', ()) [app] adding config value: ('html_show_sourcelink', True, 'html', ()) [app] adding config value: ('html_sourcelink_suffix', '.txt', 'html', ()) [app] adding config value: ('html_use_opensearch', '', 'html', ()) [app] adding config value: ('html_file_suffix', None, 'html', []) [app] adding config value: ('html_link_suffix', None, 'html', []) [app] adding config value: ('html_show_copyright', True, 'html', ()) [app] adding config value: ('html_show_search_summary', True, 'html', ()) [app] adding config value: ('html_show_sphinx', True, 'html', ()) [app] adding config value: ('html_context', {}, 'html', ()) [app] adding config value: ('html_output_encoding', 'utf-8', 'html', ()) [app] adding config value: ('html_compact_lists', True, 'html', ()) [app] adding config value: ('html_secnumber_suffix', '. ', 'html', ()) [app] adding config value: ('html_search_language', None, 'html', []) [app] adding config value: ('html_search_options', {}, 'html', ()) [app] adding config value: ('html_search_scorer', '', None, ()) [app] adding config value: ('html_scaled_image_link', True, 'html', ()) [app] adding config value: ('html_baseurl', '', 'html', ()) [app] adding config value: ('html_codeblock_linenos_style', 'inline', 'html', ) [app] adding config value: ('html_math_renderer', None, 'env', ()) [app] adding config value: ('html4_writer', False, 'html', ()) [app] adding event: 'html-collect-pages' [app] adding event: 'html-page-context' [app] connecting event 'config-inited' (800): [id=2] [app] connecting event 'config-inited' (800): [id=3] [app] connecting event 'config-inited' (800): [id=4] [app] connecting event 'config-inited' (800): [id=5] [app] connecting event 'config-inited' (800): [id=6] [app] connecting event 'config-inited' (800): [id=7] [app] connecting event 'config-inited' (800): [id=8] [app] connecting event 'builder-inited' (500): [id=9] [app] connecting event 'html-page-context' (500): [id=10] [app] connecting event 'html-page-context' (500): [id=11] [app] connecting event 'html-page-context' (500): [id=12] [app] setting up extension: 'sphinx.ext.mathjax' [app] adding html_math_renderer: mathjax, (, None), (, None) [app] adding config value: ('mathjax_path', 'https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js', 'html', ()) [app] adding config value: ('mathjax_options', {}, 'html', ()) [app] adding config value: ('mathjax_inline', ['\\(', '\\)'], 'html', ()) [app] adding config value: ('mathjax_display', ['\\[', '\\]'], 'html', ()) [app] adding config value: ('mathjax_config', None, 'html', ()) [app] adding config value: ('mathjax2_config', . at 0x000001D26B0FA1F0>, 'html', ()) [app] adding config value: ('mathjax3_config', None, 'html', ()) [app] connecting event 'html-page-context' (500): [id=13] [app] setting up extension: 'sphinx.builders.html.transforms' [app] adding post transform: [app] adding builder: [app] setting up extension: 'sphinx.builders.dummy' [app] adding builder: [app] setting up extension: 'sphinx.builders.gettext' [app] adding builder: [app] adding config value: ('gettext_compact', True, 'gettext', {, }) [app] adding config value: ('gettext_location', True, 'gettext', ()) [app] adding config value: ('gettext_uuid', False, 'gettext', ()) [app] adding config value: ('gettext_auto_build', True, 'env', ()) [app] adding config value: ('gettext_additional_targets', [], 'env', ()) [app] adding config value: ('gettext_last_translator', 'FULL NAME ', 'gettext', ()) [app] adding config value: ('gettext_language_team', 'LANGUAGE ', 'gettext', ()) [app] setting up extension: 'sphinx.builders.html' [app] setting up extension: 'sphinx.builders.latex' [app] setting up extension: 'sphinx.builders.latex.transforms' [app] adding transform: [app] adding post transform: [app] adding post transform: [app] adding post transform: [app] adding post transform: [app] adding post transform: [app] adding post transform: [app] adding post transform: [app] adding post transform: [app] adding post transform: [app] adding builder: [app] connecting event 'config-inited' (800): [id=14] [app] connecting event 'config-inited' (800): [id=15] [app] connecting event 'builder-inited' (500): [id=16] [app] adding config value: ('latex_engine', , None, ) [app] adding config value: ('latex_documents', , None, ()) [app] adding config value: ('latex_logo', None, None, []) [app] adding config value: ('latex_appendices', [], None, ()) [app] adding config value: ('latex_use_latex_multicolumn', False, None, ()) [app] adding config value: ('latex_use_xindy', , None, []) [app] adding config value: ('latex_toplevel_sectioning', None, None, ) [app] adding config value: ('latex_domain_indices', True, None, []) [app] adding config value: ('latex_show_urls', 'no', None, ()) [app] adding config value: ('latex_show_pagerefs', False, None, ()) [app] adding config value: ('latex_elements', {}, None, ()) [app] adding config value: ('latex_additional_files', [], None, ()) [app] adding config value: ('latex_theme', 'manual', None, []) [app] adding config value: ('latex_theme_options', {}, None, ()) [app] adding config value: ('latex_theme_path', [], None, []) [app] adding config value: ('latex_docclass', , None, ()) [app] setting up extension: 'sphinx.builders.linkcheck' [app] adding builder: [app] adding post transform: [app] adding config value: ('linkcheck_ignore', [], False, ()) [app] adding config value: ('linkcheck_exclude_documents', [], False, ()) [app] adding config value: ('linkcheck_allowed_redirects', {}, False, ()) [app] adding config value: ('linkcheck_auth', [], False, ()) [app] adding config value: ('linkcheck_request_headers', {}, False, ()) [app] adding config value: ('linkcheck_retries', 1, False, ()) [app] adding config value: ('linkcheck_timeout', None, False, []) [app] adding config value: ('linkcheck_workers', 5, False, ()) [app] adding config value: ('linkcheck_anchors', True, False, ()) [app] adding config value: ('linkcheck_anchors_ignore', ['^!'], False, ()) [app] adding config value: ('linkcheck_rate_limit_timeout', 300.0, False, ()) [app] adding event: 'linkcheck-process-uri' [app] connecting event 'config-inited' (800): [id=17] [app] setting up extension: 'sphinx.builders.manpage' [app] adding builder: [app] adding config value: ('man_pages', , False, ()) [app] adding config value: ('man_show_urls', False, False, ()) [app] adding config value: ('man_make_section_directory', False, False, ()) [app] setting up extension: 'sphinx.builders.singlehtml' [app] setting up extension: 'sphinx.builders.html' [app] adding builder: [app] adding config value: ('singlehtml_sidebars', . at 0x000001D26B1E7550>, 'html', ()) [app] setting up extension: 'sphinx.builders.texinfo' [app] adding builder: [app] adding config value: ('texinfo_documents', , False, ()) [app] adding config value: ('texinfo_appendices', [], False, ()) [app] adding config value: ('texinfo_elements', {}, False, ()) [app] adding config value: ('texinfo_domain_indices', True, False, []) [app] adding config value: ('texinfo_show_urls', 'footnote', False, ()) [app] adding config value: ('texinfo_no_detailmenu', False, False, ()) [app] adding config value: ('texinfo_cross_references', True, False, ()) [app] setting up extension: 'sphinx.builders.text' [app] adding builder: [app] adding config value: ('text_sectionchars', '*=-~"+`', 'env', ()) [app] adding config value: ('text_newlines', 'unix', 'env', ()) [app] adding config value: ('text_add_secnumbers', True, 'env', ()) [app] adding config value: ('text_secnumber_suffix', '. ', 'env', ()) [app] setting up extension: 'sphinx.builders.xml' [app] adding builder: [app] adding builder: [app] adding config value: ('xml_pretty', True, 'env', ()) [app] setting up extension: 'sphinx.config' [app] connecting event 'config-inited' (800): [id=18] [app] connecting event 'config-inited' (800): [id=19] [app] connecting event 'config-inited' (800): [id=20] [app] connecting event 'config-inited' (800): [id=21] [app] connecting event 'config-inited' (800): [id=22] [app] connecting event 'config-inited' (800): [id=23] [app] connecting event 'env-get-outdated' (500): [id=24] [app] setting up extension: 'sphinx.domains.c' [app] adding domain: [app] adding config value: ('c_id_attributes', [], 'env', ()) [app] adding config value: ('c_paren_attributes', [], 'env', ()) [app] adding config value: ('c_extra_keywords', ['alignas', 'alignof', 'bool', 'complex', 'imaginary', 'noreturn', 'static_assert', 'thread_local'], 'env', ()) [app] adding post transform: [app] adding config value: ('c_allow_pre_v3', False, 'env', ()) [app] adding config value: ('c_warn_on_allowed_pre_v3', True, 'env', ()) [app] setting up extension: 'sphinx.domains.changeset' [app] adding domain: [app] adding directive: ('deprecated', ) [app] adding directive: ('versionadded', ) [app] adding directive: ('versionchanged', ) [app] setting up extension: 'sphinx.domains.citation' [app] adding domain: [app] adding transform: [app] adding transform: [app] setting up extension: 'sphinx.domains.cpp' [app] adding domain: [app] adding config value: ('cpp_index_common_prefix', [], 'env', ()) [app] adding config value: ('cpp_id_attributes', [], 'env', ()) [app] adding config value: ('cpp_paren_attributes', [], 'env', ()) [app] adding post transform: [app] adding config value: ('cpp_debug_lookup', False, '', ()) [app] adding config value: ('cpp_debug_show_tree', False, '', ()) [app] connecting event 'builder-inited' (500): .initStuff at 0x000001D26B4F2C10> [id=25] [app] setting up extension: 'sphinx.domains.index' [app] adding domain: [app] adding directive: ('index', ) [app] adding role: ('index', ) [app] setting up extension: 'sphinx.domains.javascript' [app] adding domain: [app] setting up extension: 'sphinx.domains.math' [app] adding domain: [app] adding role: ('eq', ) [app] setting up extension: 'sphinx.domains.python' [app] setting up extension: 'sphinx.directives' [app] adding config value: ('strip_signature_backslash', False, 'env', ()) [app] adding event: 'object-description-transform' [app] adding domain: [app] adding config value: ('python_use_unqualified_type_names', False, 'env', ()) [app] connecting event 'object-description-transform' (500): [id=26] [app] connecting event 'missing-reference' (900): [id=27] [app] setting up extension: 'sphinx.domains.rst' [app] adding domain: [app] setting up extension: 'sphinx.domains.std' [app] adding domain: [app] connecting event 'warn-missing-reference' (500): [id=28] [app] setting up extension: 'sphinx.directives' [app] setting up extension: 'sphinx.directives.code' [app] setting up extension: 'sphinx.directives.other' [app] setting up extension: 'sphinx.directives.patches' [app] setting up extension: 'sphinx.extension' [app] connecting event 'config-inited' (800): [id=29] [app] setting up extension: 'sphinx.parsers' [app] adding search source_parser: [app] setting up extension: 'sphinx.registry' [app] connecting event 'config-inited' (800): [id=30] [app] setting up extension: 'sphinx.roles' [app] setting up extension: 'sphinx.transforms' [app] adding transform: [app] adding transform: [app] adding transform: [app] adding transform: [app] adding transform: [app] adding transform: [app] adding transform: [app] adding transform: [app] adding transform: [app] adding transform: [app] adding transform: [app] adding transform: [app] adding transform: [app] adding transform: [app] adding transform: [app] setting up extension: 'sphinx.transforms.compact_bullet_list' [app] adding transform: [app] setting up extension: 'sphinx.transforms.i18n' [app] adding transform: [app] adding transform: [app] adding transform: [app] setting up extension: 'sphinx.transforms.references' [app] adding transform: [app] adding transform: [app] setting up extension: 'sphinx.transforms.post_transforms' [app] adding post transform: [app] adding post transform: [app] adding post transform: [app] adding post transform: [app] setting up extension: 'sphinx.transforms.post_transforms.code' [app] adding post transform: [app] adding post transform: [app] setting up extension: 'sphinx.transforms.post_transforms.images' [app] adding post transform: [app] adding post transform: [app] setting up extension: 'sphinx.util.compat' [app] connecting event 'builder-inited' (100): [id=31] [app] setting up extension: 'sphinx.versioning' [app] adding transform: [app] setting up extension: 'sphinx.environment.collectors.dependencies' [app] adding environment collector: [app] connecting event 'doctree-read' (500): > [id=32] [app] connecting event 'env-merge-info' (500): > [id=33] [app] connecting event 'env-purge-doc' (500): > [id=34] [app] connecting event 'env-get-updated' (500): > [id=35] [app] connecting event 'env-get-outdated' (500): > [id=36] [app] setting up extension: 'sphinx.environment.collectors.asset' [app] adding environment collector: [app] connecting event 'doctree-read' (500): > [id=37] [app] connecting event 'env-merge-info' (500): > [id=38] [app] connecting event 'env-purge-doc' (500): > [id=39] [app] connecting event 'env-get-updated' (500): > [id=40] [app] connecting event 'env-get-outdated' (500): > [id=41] [app] adding environment collector: [app] connecting event 'doctree-read' (500): > [id=42] [app] connecting event 'env-merge-info' (500): > [id=43] [app] connecting event 'env-purge-doc' (500): > [id=44] [app] connecting event 'env-get-updated' (500): > [id=45] [app] connecting event 'env-get-outdated' (500): > [id=46] [app] setting up extension: 'sphinx.environment.collectors.metadata' [app] adding environment collector: [app] connecting event 'doctree-read' (500): > [id=47] [app] connecting event 'env-merge-info' (500): > [id=48] [app] connecting event 'env-purge-doc' (500): > [id=49] [app] connecting event 'env-get-updated' (500): > [id=50] [app] connecting event 'env-get-outdated' (500): > [id=51] [app] setting up extension: 'sphinx.environment.collectors.title' [app] adding environment collector: [app] connecting event 'doctree-read' (500): > [id=52] [app] connecting event 'env-merge-info' (500): > [id=53] [app] connecting event 'env-purge-doc' (500): > [id=54] [app] connecting event 'env-get-updated' (500): > [id=55] [app] connecting event 'env-get-outdated' (500): > [id=56] [app] setting up extension: 'sphinx.environment.collectors.toctree' [app] adding environment collector: [app] connecting event 'doctree-read' (500): > [id=57] [app] connecting event 'env-merge-info' (500): > [id=58] [app] connecting event 'env-purge-doc' (500): > [id=59] [app] connecting event 'env-get-updated' (500): > [id=60] [app] connecting event 'env-get-outdated' (500): > [id=61] [app] setting up extension: 'sphinxcontrib.applehelp' [app] setting up extension: 'sphinx.builders.html' [app] adding builder: [app] adding config value: ('applehelp_bundle_name', . at 0x000001D26B76D670>, 'applehelp', ()) [app] adding config value: ('applehelp_bundle_id', None, 'applehelp', []) [app] adding config value: ('applehelp_dev_region', 'en-us', 'applehelp', ()) [app] adding config value: ('applehelp_bundle_version', '1', 'applehelp', ()) [app] adding config value: ('applehelp_icon', None, 'applehelp', []) [app] adding config value: ('applehelp_kb_product', . at 0x000001D26B76D5E0>, 'applehelp', ()) [app] adding config value: ('applehelp_kb_url', None, 'applehelp', []) [app] adding config value: ('applehelp_remote_url', None, 'applehelp', []) [app] adding config value: ('applehelp_index_anchors', False, 'applehelp', []) [app] adding config value: ('applehelp_min_term_length', None, 'applehelp', []) [app] adding config value: ('applehelp_stopwords', . at 0x000001D26B649310>, 'applehelp', ()) [app] adding config value: ('applehelp_locale', . at 0x000001D26B76D790>, 'applehelp', ()) [app] adding config value: ('applehelp_title', . at 0x000001D26B76D550>, 'applehelp', ()) [app] adding config value: ('applehelp_codesign_identity', . at 0x000001D26B66D4C0>, 'applehelp', ()) [app] adding config value: ('applehelp_codesign_flags', . at 0x000001D26B76D700>, 'applehelp', ()) [app] adding config value: ('applehelp_indexer_path', '/usr/bin/hiutil', 'applehelp', ()) [app] adding config value: ('applehelp_codesign_path', '/usr/bin/codesign', 'applehelp', ()) [app] adding config value: ('applehelp_disable_external_tools', False, 'applehelp', ()) [app] setting up extension: 'sphinxcontrib.devhelp' [app] setting up extension: 'sphinx.builders.html' [app] adding builder: [app] adding config value: ('devhelp_basename', . at 0x000001D26B77C9D0>, 'devhelp', ()) [app] setting up extension: 'sphinxcontrib.htmlhelp' [app] setting up extension: 'sphinx.builders.html' [app] adding builder: [app] adding config value: ('htmlhelp_basename', , '', ()) [app] adding config value: ('htmlhelp_file_suffix', None, 'html', []) [app] adding config value: ('htmlhelp_link_suffix', None, 'html', []) [app] setting up extension: 'sphinxcontrib.serializinghtml' [app] setting up extension: 'sphinx.builders.html' [app] adding builder: [app] adding builder: [app] setting up extension: 'sphinxcontrib.qthelp' [app] setting up extension: 'sphinx.builders.html' [app] adding builder: [app] adding config value: ('qthelp_basename', . at 0x000001D26B77C8B0>, 'html', ()) [app] adding config value: ('qthelp_namespace', None, 'html', []) [app] adding config value: ('qthelp_theme', 'nonav', 'html', ()) [app] adding config value: ('qthelp_theme_options', {}, 'html', ()) [app] setting up extension: 'alabaster' [app] adding HTML theme: 'alabaster', 'C:\\git-repos\\PDF-Generation\\.venv-simplepdf\\lib\\site-packages\\alabaster' [app] connecting event 'html-page-context' (500): [id=62] [app] setting up extension: 'sphinx_simplepdf' [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding directive: ('if-builder', ) [app] adding directive: ('if-include', ) [app] setting up extension: 'sphinxcontrib.plantuml' [app] adding node: (, {'html': (, None), 'latex': (, ), 'man': (, None), 'texinfo': (, None), 'text': (, None), 'confluence': (, ), 'singleconfluence': (, )}) [app] adding translation_handlers: , {'html': (, None), 'latex': (, ), 'man': (, None), 'texinfo': (, None), 'text': (, None), 'confluence': (, ), 'singleconfluence': (, )} [app] adding directive: ('uml', ) [app] adding config value: ('plantuml', 'plantuml', 'html', (, , )) [app] adding config value: ('plantuml_output_format', 'png', 'html', ()) [app] adding config value: ('plantuml_epstopdf', 'epstopdf', '', ()) [app] adding config value: ('plantuml_latex_output_format', 'png', '', ()) [app] adding config value: ('plantuml_syntax_error_image', False, '', ()) [app] adding config value: ('plantuml_cache_path', '_plantuml', '', ()) [app] adding config value: ('plantuml_batch_size', 1, '', ()) [app] connecting event 'builder-inited' (500): [id=63] [app] connecting event 'doctree-read' (500): [id=64] [app] connecting event 'doctree-resolved' (500): [id=65] [app] setting up extension: 'sphinxcontrib.needs' Starting setup of Sphinx-Needs Load Sphinx-Data-Viewer for Sphinx-Needs [app] setting up extension: 'sphinx_data_viewer' [app] adding config value: ('data_viewer_data', {}, 'html', ()) [app] adding node: (, {'html': (, )}) [app] adding translation_handlers: , {'html': (, )} [app] adding directive: ('data-viewer', ) [app] connecting event 'env-updated' (500): [id=66] [app] adding builder: [app] adding config value: ('needs_types', [{'directive': 'req', 'title': 'Requirement', 'prefix': 'R_', 'color': '#BFD8D2', 'style': 'node'}, {'directive': 'spec', 'title': 'Specification', 'prefix': 'S_', 'color': '#FEDCD2', 'style': 'node'}, {'directive': 'impl', 'title': 'Implementation', 'prefix': 'I_', 'color': '#DF744A', 'style': 'node'}, {'directive': 'test', 'title': 'Test Case', 'prefix': 'T_', 'color': '#DCB239', 'style': 'node'}, {'directive': 'need', 'title': 'Need', 'prefix': 'N_', 'color': '#9856a5', 'style': 'node'}], 'html', ()) [app] adding config value: ('needs_include_needs', True, 'html', []) [app] adding config value: ('needs_need_name', 'Need', 'html', []) [app] adding config value: ('needs_spec_name', 'Specification', 'html', []) [app] adding config value: ('needs_id_prefix_needs', '', 'html', []) [app] adding config value: ('needs_id_prefix_specs', '', 'html', []) [app] adding config value: ('needs_id_length', 5, 'html', []) [app] adding config value: ('needs_specs_show_needlist', False, 'html', []) [app] adding config value: ('needs_id_required', False, 'html', []) [app] adding config value: ('needs_id_regex', '^[A-Z0-9_]{5,}', 'html', ()) [app] adding config value: ('needs_show_link_type', False, 'html', []) [app] adding config value: ('needs_show_link_title', False, 'html', []) [app] adding config value: ('needs_file', None, 'html', ()) [app] adding config value: ('needs_table_columns', 'ID;TITLE;STATUS;TYPE;OUTGOING;TAGS', 'html', ()) [app] adding config value: ('needs_table_style', 'DATATABLES', 'html', ()) [app] adding config value: ('needs_role_need_template', '{title} ({id})', 'html', ()) [app] adding config value: ('needs_role_need_max_title_length', 30, 'html', []) [app] adding config value: ('needs_extra_options', [], 'html', ()) [app] adding config value: ('needs_title_optional', False, 'html', []) [app] adding config value: ('needs_max_title_length', -1, 'html', []) [app] adding config value: ('needs_title_from_content', False, 'html', []) [app] adding config value: ('needs_diagram_template', "\n{%- if is_need -%}\n{{type_name}}\\n**{{title|wordwrap(15, wrapstring='**\\\\n**')}}**\\n{{id}}\n{%- else -%}\n{{type_name}} (part)\\n**{{content|wordwrap(15, wrapstring='**\\\\n**')}}**\\n{{id_parent}}.**{{id}}**\n{%- endif -%}\n", 'html', ()) [app] adding config value: ('needs_functions', [], 'html', []) [app] adding config value: ('needs_global_options', {}, 'html', []) [app] adding config value: ('needs_duration_option', 'duration', 'html', ()) [app] adding config value: ('needs_completion_option', 'completion', 'html', ()) [app] adding config value: ('needs_statuses', [], 'html', ()) [app] adding config value: ('needs_tags', False, 'html', []) [app] adding config value: ('needs_css', 'modern.css', 'html', ()) [app] adding config value: ('needs_part_prefix', '→\xa0', 'html', ()) [app] adding config value: ('needs_extra_links', [], 'html', ()) [app] adding config value: ('needs_filter_data', {}, 'html', ()) [app] adding config value: ('needs_flow_show_links', False, 'html', ()) [app] adding config value: ('needs_flow_link_types', ['links'], 'html', ()) [app] adding config value: ('needs_warnings', {}, 'html', ()) [app] adding config value: ('needs_warnings_always_warn', False, 'html', []) [app] adding config value: ('needs_layouts', {}, 'html', ()) [app] adding config value: ('needs_default_layout', 'clean', 'html', ()) [app] adding config value: ('needs_default_style', None, 'html', ()) [app] adding config value: ('needs_flow_configs', {}, 'html', ()) [app] adding config value: ('needs_template_folder', 'needs_templates/', 'html', ()) [app] adding config value: ('needs_services', {}, 'html', ()) [app] adding config value: ('needs_service_all_data', False, 'html', []) [app] adding config value: ('needs_debug_no_external_calls', False, 'html', []) [app] adding config value: ('needs_external_needs', [], 'html', ()) [app] adding config value: ('needs_builder_filter', 'is_external==False', 'html', []) [app] adding config value: ('needs_table_classes', ['rtd-exclude-wy-table', 'no-sphinx-material-strip'], 'html', []) [app] adding config value: ('needs_string_links', {}, 'html', []) [app] adding config value: ('needs_build_json', False, 'html', []) [app] adding node: (, {'html': (, ), 'latex': (, )}) [app] adding translation_handlers: , {'html': (, ), 'latex': (, )} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {}) [app] adding translation_handlers: , {} [app] adding node: (, {'html': (, ), 'latex': (, )}) [app] adding translation_handlers: , {'html': (, ), 'latex': (, )} [app] adding directive: ('needbar', ) [app] adding directive: ('needfilter', ) [app] adding directive: ('needlist', ) [app] adding directive: ('needtable', ) [app] adding directive: ('needflow', ) [app] adding directive: ('needpie', ) [app] adding directive: ('needsequence', ) [app] adding directive: ('needgantt', ) [app] adding directive: ('needimport', ) [app] adding directive: ('needextract', ) [app] adding directive: ('needservice', ) [app] adding directive: ('needextend', ) [app] adding role: ('need', ) [app] adding role: ('need_incoming', ) [app] adding role: ('need_outgoing', ) [app] adding role: ('need_part', ) [app] adding role: ('np', ) [app] adding role: ('need_count', ) [app] adding role: ('need_func', ) [app] connecting event 'env-purge-doc' (500): [id=67] [app] connecting event 'config-inited' (500): [id=68] [app] connecting event 'env-before-read-docs' (500): [id=69] [app] connecting event 'env-before-read-docs' (500): [id=70] [app] connecting event 'config-inited' (500): [id=71] [app] connecting event 'env-merge-info' (500): [id=72] [app] connecting event 'doctree-resolved' (500): [id=73] [app] connecting event 'doctree-resolved' (500): [id=74] [app] connecting event 'doctree-resolved' (500): [id=75] [app] connecting event 'doctree-resolved' (500): [id=76] [app] connecting event 'doctree-resolved' (500): [id=77] [app] connecting event 'doctree-resolved' (500): [id=78] [app] connecting event 'doctree-resolved' (500): [id=79] [app] connecting event 'doctree-resolved' (500): [id=80] [app] connecting event 'doctree-resolved' (500): [id=81] [app] connecting event 'doctree-resolved' (500): [id=82] [app] connecting event 'doctree-resolved' (500): [id=83] [app] connecting event 'doctree-resolved' (500): [id=84] [app] connecting event 'doctree-resolved' (500): [id=85] [app] connecting event 'doctree-resolved' (500): [id=86] [app] connecting event 'doctree-resolved' (500): [id=87] [app] connecting event 'doctree-resolved' (500): [id=88] [app] connecting event 'doctree-resolved' (500): [id=89] [app] connecting event 'doctree-resolved' (500): [id=90] [app] connecting event 'doctree-resolved' (500): [id=91] [app] connecting event 'build-finished' (500): [id=92] [app] connecting event 'build-finished' (500): [id=93] [app] connecting event 'env-updated' (500): [id=94] [app] connecting event 'env-updated' (500): [id=95] [app] setting up extension: 'sphinx.ext.autodoc' [app] adding autodocumenter: [app] adding directive: ('automodule', ) [app] adding autodocumenter: [app] adding directive: ('autoclass', ) [app] adding autodocumenter: [app] adding directive: ('autoexception', ) [app] adding autodocumenter: [app] adding directive: ('autodata', ) [app] adding autodocumenter: [app] adding directive: ('autonewtypedata', ) [app] adding autodocumenter: [app] adding directive: ('autofunction', ) [app] adding autodocumenter: [app] adding directive: ('autodecorator', ) [app] adding autodocumenter: [app] adding directive: ('automethod', ) [app] adding autodocumenter: [app] adding directive: ('autoattribute', ) [app] adding autodocumenter: [app] adding directive: ('autoproperty', ) [app] adding autodocumenter: [app] adding directive: ('autonewvarattribute', ) [app] adding config value: ('autoclass_content', 'class', True, ) [app] adding config value: ('autodoc_member_order', 'alphabetical', True, ) [app] adding config value: ('autodoc_class_signature', 'mixed', True, ) [app] adding config value: ('autodoc_default_options', {}, True, ()) [app] adding config value: ('autodoc_docstring_signature', True, True, ()) [app] adding config value: ('autodoc_mock_imports', [], True, ()) [app] adding config value: ('autodoc_typehints', 'signature', True, ) [app] adding config value: ('autodoc_typehints_description_target', 'all', True, ) [app] adding config value: ('autodoc_type_aliases', {}, True, ()) [app] adding config value: ('autodoc_typehints_format', 'short', 'env', ) [app] adding config value: ('autodoc_warningiserror', True, True, ()) [app] adding config value: ('autodoc_inherit_docstrings', True, True, ()) [app] adding event: 'autodoc-before-process-signature' [app] adding event: 'autodoc-process-docstring' [app] adding event: 'autodoc-process-signature' [app] adding event: 'autodoc-skip-member' [app] adding event: 'autodoc-process-bases' [app] setting up extension: 'sphinx.ext.autodoc.preserve_defaults' [app] adding config value: ('autodoc_preserve_defaults', False, True, ()) [app] connecting event 'autodoc-before-process-signature' (500): [id=96] [app] setting up extension: 'sphinx.ext.autodoc.type_comment' [app] connecting event 'autodoc-before-process-signature' (500): [id=97] [app] setting up extension: 'sphinx.ext.autodoc.typehints' [app] connecting event 'autodoc-process-signature' (500): [id=98] [app] connecting event 'object-description-transform' (500): [id=99] [app] adding config value: ('simplepdf_vars', {}, 'html', []) [app] adding config value: ('simplepdf_debug', False, 'html', ) [app] adding builder: [app] emitting event: 'config-inited'(,) [app] adding directive: ('req', ) [app] adding directive: ('spec', ) [app] adding directive: ('impl', ) [app] adding directive: ('test', ) [app] adding directive: ('need', ) Setting theme to sphinx_simplepdf Generating css files from scss-templates locale_dir C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\locales\en\LC_MESSAGES does not exists [app] adding HTML theme: 'simplepdf_theme', 'C:\\git-repos\\PDF-Generation\\.venv-simplepdf\\lib\\site-packages\\sphinx_simplepdf\\themes\\simplepdf_theme' [app] emitting event: 'builder-inited'() locale_dir C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\locales\en\LC_MESSAGES does not exists locale_dir C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\locales\en\LC_MESSAGES does not exists building [mo]: all of 0 po files building [simplepdf]: all source files updating environment: locale_dir C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\locales\en\LC_MESSAGES does not exists [app] emitting event: 'env-get-outdated'(, {'level1/index', 'index', 'api' [new config] 14 added, 0 changed, 0 removed [app] emitting event: 'env-before-read-docs'(, ['api', 'demo', 'images', 'inde No service config found for github-issues. Add it in your conf.py to needs_services dictionary. Register option "type" for service "github-issues" Register option "query" for service "github-issues" Register option "specific" for service "github-issues" Register option "max_amount" for service "github-issues" Register option "max_content_lines" for service "github-issues" Register option "id_prefix" for service "github-issues" Register option "user" for service "github-issues" Register option "created_at" for service "github-issues" Register option "updated_at" for service "github-issues" Register option "closed_at" for service "github-issues" Register option "service" for service "github-issues" Register option "url" for service "github-issues" Register option "avatar" for service "github-issues" [app] adding directive: ('issue', ) [app] adding directive: ('pr', ) [app] adding directive: ('commit', ) No service config found for github-prs. Add it in your conf.py to needs_services dictionary. No service config found for github-commits. Add it in your conf.py to needs_services dictionary. reading sources... [ 7%] api [app] emitting event: 'env-purge-doc'(, 'api') [app] emitting event: 'source-read'('api', ["***************************************\nAPI documentation and generated content\n******** [autodoc] C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\api.rst:10: input: .. automodule:: test_py_module.test :members: :private-members: :special-members: [autodoc] import test_py_module.test [autodoc] import test_py_module.test => [app] emitting event: 'autodoc-process-signature'('module', 'test_py_module.test', , False, {'members': , [app] emitting event: 'autodoc-skip-member'('module', '__name__', 'test_py_module.test', True, {'members': , False, {'members': , False, {'members': [autodoc] from test_py_module.test import Foo [autodoc] import test_py_module.test => [autodoc] getattr(_, 'Foo') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('class', 'test_py_module.test.Foo', , {'members': , {'members': , False, {'members': , False, {'members': , False, {'members': , False, {'member [app] emitting event: 'autodoc-skip-member'('class', 'bar', 1, False, {'members': , 'priv [app] emitting event: 'autodoc-skip-member'('class', 'baz', 2, False, {'members': , 'priv [app] emitting event: 'autodoc-skip-member'('class', 'capitalize', , False, {'members': , 'p [app] emitting event: 'autodoc-skip-member'('class', 'qux', , False, {'members': , False, {'members': [autodoc] getattr(_, 'Foo') [autodoc] => [autodoc] getattr(_, '__init__') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'test_py_module.test.Foo.__init__', , {'memb [app] emitting event: 'autodoc-process-docstring'('method', 'test_py_module.test.Foo.__init__', , {'memb [autodoc] from test_py_module.test import Foo.__weakref__ [autodoc] import test_py_module.test => [autodoc] getattr(_, 'Foo') [autodoc] => [autodoc] getattr(_, '__weakref__') [autodoc] => [app] emitting event: 'autodoc-process-signature'('attribute', 'test_py_module.test.Foo.__weakref__', , {'m [app] emitting event: 'autodoc-process-docstring'('attribute', 'test_py_module.test.Foo.__weakref__', , {'m [autodoc] from test_py_module.test import Foo.add [autodoc] import test_py_module.test => [autodoc] getattr(_, 'Foo') [autodoc] => [autodoc] getattr(_, 'add') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'test_py_module.test.Foo.add', , {'members': , {'members': [autodoc] getattr(_, 'Foo') [autodoc] => [autodoc] getattr(_, 'another_function') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'test_py_module.test.Foo.another_function', [autodoc] getattr(_, 'Foo') [autodoc] => [autodoc] getattr(_, 'bar') [autodoc] => 1 [app] emitting event: 'autodoc-process-signature'('attribute', 'test_py_module.test.Foo.bar', 1, {'members': [autodoc] getattr(_, 'Foo') [autodoc] => [autodoc] getattr(_, 'baz') [autodoc] => 2 [app] emitting event: 'autodoc-process-signature'('attribute', 'test_py_module.test.Foo.baz', 2, {'members': [autodoc] getattr(_, 'Foo') [autodoc] => [autodoc] getattr(_, 'capitalize') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, True) [app] emitting event: 'autodoc-process-signature'('method', 'test_py_module.test.Foo.capitalize', , {' [app] emitting event: 'autodoc-process-docstring'('method', 'test_py_module.test.Foo.capitalize', , {' [autodoc] from test_py_module.test import Foo.flox [autodoc] import test_py_module.test => [autodoc] getattr(_, 'Foo') [autodoc] => [autodoc] getattr(_, 'flox') [autodoc] => 1.5 [app] emitting event: 'autodoc-process-signature'('attribute', 'test_py_module.test.Foo.flox', 1.5, {'members': [autodoc] getattr(_, 'Foo') [autodoc] => [autodoc] getattr(_, 'qux') autodoc: failed to import attribute 'Foo.qux' from module 'test_py_module.test'; the following exception was raised: Traceback (most recent call last): File "C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinx\util\inspect.py", line 376, in safe_getattr return getattr(obj, name, *defargs) AttributeError: type object 'Foo' has no attribute 'qux' The above exception was the direct cause of the following exception: Traceback (most recent call last): File "C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinx\ext\autodoc\importer.py", line 98, in import_object obj = attrgetter(obj, mangled_name) File "C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinx\ext\autodoc\__init__.py", line 306, in get_attr return autodoc_attrgetter(self.env.app, obj, name, *defargs) File "C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinx\ext\autodoc\__init__.py", line 2794, in autodoc_attrgetter return safe_getattr(obj, name, *defargs) File "C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinx\util\inspect.py", line 392, in safe_getattr raise AttributeError(name) from exc AttributeError: qux [autodoc] from test_py_module.test import Foo [autodoc] import test_py_module.test => [autodoc] getattr(_, 'Foo') [autodoc] => [autodoc] from test_py_module.test import Foo [autodoc] import test_py_module.test => [autodoc] getattr(_, 'Foo') [autodoc] => [app] emitting event: 'autodoc-process-signature'('attribute', 'test_py_module.test.Foo.qux', , {'members': , {'members': [autodoc] getattr(_, 'Foo') [autodoc] => [autodoc] getattr(_, 'spam') autodoc: failed to import attribute 'Foo.spam' from module 'test_py_module.test'; the following exception was raised: Traceback (most recent call last): File "C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinx\util\inspect.py", line 376, in safe_getattr return getattr(obj, name, *defargs) AttributeError: type object 'Foo' has no attribute 'spam' The above exception was the direct cause of the following exception: Traceback (most recent call last): File "C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinx\ext\autodoc\importer.py", line 98, in import_object obj = attrgetter(obj, mangled_name) File "C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinx\ext\autodoc\__init__.py", line 306, in get_attr return autodoc_attrgetter(self.env.app, obj, name, *defargs) File "C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinx\ext\autodoc\__init__.py", line 2794, in autodoc_attrgetter return safe_getattr(obj, name, *defargs) File "C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinx\util\inspect.py", line 392, in safe_getattr raise AttributeError(name) from exc AttributeError: spam [autodoc] from test_py_module.test import Foo [autodoc] import test_py_module.test => [autodoc] getattr(_, 'Foo') [autodoc] => [autodoc] from test_py_module.test import Foo [autodoc] import test_py_module.test => [autodoc] getattr(_, 'Foo') [autodoc] => [app] emitting event: 'autodoc-process-signature'('attribute', 'test_py_module.test.Foo.spam', , {'members': , {'members': [autodoc] getattr(_, 'add_numbers') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'test_py_module.test.add_numbers', , {'memb [app] emitting event: 'autodoc-process-docstring'('function', 'test_py_module.test.add_numbers', , {'memb [autodoc] from test_py_module.test import subtract_numbers [autodoc] import test_py_module.test => [autodoc] getattr(_, 'subtract_numbers') [autodoc] => [app] emitting event: 'autodoc-before-process-signature'(, False) [app] emitting event: 'autodoc-process-signature'('function', 'test_py_module.test.subtract_numbers', ``, and ``
`` tags. Also, ```` is used for class, method names and etc, but those will *always* have the ``.descname`` or ``.descclassname`` class. Term It is also possible to include definitions inside docstrings. They should be styled as a normal definition list. :Field List: It is also possible to include definitions inside docstrings. They should be styled as a normal definition list. .. [1] A footnote contains body elements, consistently indented by at least 3 spaces. .. [Citation] A citation contains body elements, consistently indented by at least 3 spaces. Normal ```` (like the I just wrote here) needs to be shown with the same style as anything else with ````this type of markup````. It's common for programmers to give a code example inside of their docstring:: from test_py_module import Foo myclass = Foo() myclass.dothismethod('with this argument') myclass.flush() print(myclass) Here is a link to :py:meth:`capitalize`. Here is a link to :py:meth:`__init__`. .. py:method:: Foo.__init__(qux, spam=False) :module: test_py_module.test Start the Foo. :param qux: The first argument to initialize class. :type qux: string :param spam: Spam me yes or no... :type spam: bool .. py:attribute:: Foo.__weakref__ :module: test_py_module.test list of weak references to the object (if defined) .. py:method:: Foo.add(val1, val2) :module: test_py_module.test Return the added values. :param val1: First number to add. :type val1: int :param val2: Second number to add. :type val2: int :rtype: int The parameters of this method are described in the parameter list. .. py:method:: Foo.another_function(a, b, **kwargs) :module: test_py_module.test Here is another function. :param a: The number of green hats you own. :type a: int :param b: The number of non-green hats you own. :type b: int :param kwargs: Additional keyword arguments. Each keyword parameter should specify the name of your favorite cuisine. The values should be floats, specifying the mean price of your favorite dish in that cooking style. :type kwargs: float :returns: A 2-tuple. The first element is the mean price of all dishes across cuisines. The second element is the total number of hats you own: :math:`a + b`. :rtype: tuple :raises ValueError: When ``a`` is not an integer. .. versionadded:: 1.0 This was added in 1.0 .. versionchanged:: 2.0 This was changed in 2.0 .. deprecated:: 3.0 This is deprecated since 3.0 .. py:attribute:: Foo.bar :module: test_py_module.test :value: 1 Doc comment for class attribute Foo.bar. It can have multiple lines. .. py:attribute:: Foo.baz :module: test_py_module.test :value: 2 Docstring for class attribute Foo.baz. .. py:method:: Foo.capitalize(myvalue) :module: test_py_module.test Return a string as uppercase. :param myvalue: String to change :type myvalue: string :rtype: string .. py:attribute:: Foo.flox :module: test_py_module.test :value: 1.5 Doc comment for Foo.flox. One line only. .. py:attribute:: Foo.qux :module: test_py_module.test Doc comment for instance attribute qux. .. py:attribute:: Foo.spam :module: test_py_module.test Docstring for instance attribute spam. .. py:function:: add_numbers(a: int, b: int = 0) -> int :module: test_py_module.test Add two numbers together :param a: The first number :param b: The second number Here is some more text. .. py:function:: subtract_numbers(a: int, b: int = 0) -> int :module: test_py_module.test Subtract two numbers :param a: The first number :param b: The second number [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'method', ) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'method', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'attribute', >) [app] emitting event: 'object-description-transform'('py', 'class', ) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('py', 'function', >) [app] emitting event: 'object-description-transform'('cpp', 'type', >) [app] emitting event: 'object-description-transform'('cpp', 'function', >) [app] emitting event: 'object-description-transform'('cpp', 'class', >) [app] emitting event: 'object-description-transform'('cpp', 'member', >) [app] emitting event: 'object-description-transform'('cpp', 'var', >) [app] emitting event: 'object-description-transform'('cpp', 'type', >) [app] emitting event: 'object-description-transform'('cpp', 'enumerator', ) [app] emitting event: 'object-description-transform'('cpp', 'enum', >) [app] emitting event: 'object-description-transform'('cpp', 'enumerator', ) [app] emitting event: 'object-description-transform'('cpp', 'enum-class', >) [app] emitting event: 'object-description-transform'('cpp', 'enumerator', ) [app] emitting event: 'object-description-transform'('cpp', 'enum-struct', >) [app] emitting event: 'object-description-transform'('js', 'class', >) [app] emitting event: 'object-description-transform'('js', 'method', >) [app] emitting event: 'object-description-transform'('js', 'method', >) [app] emitting event: 'object-description-transform'('js', 'method', >) [app] emitting event: 'object-description-transform'('js', 'method', >) [app] emitting event: 'object-description-transform'('js', 'class', >) [app] emitting event: 'object-description-transform'('py', 'class', >) [app] emitting event: 'object-description-transform'('py', 'data', >) [i18n] PATCH: 'docutils.nodes.title' to have source: Table of Contents [i18n] PATCH: 'docutils.nodes.term' to have rawsource: Term [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Field List [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Parameters [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Parameters [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Return type [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Parameters [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Returns [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Return type [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Raises [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Parameters [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Return type [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Parameters [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Parameters [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Parameters [app] emitting event: 'doctree-read'(>,) reading sources... [ 14%] demo [app] emitting event: 'env-purge-doc'(, 'demo') [app] emitting event: 'source-read'('demo', ['.. This is a comment. Note how any initial comments are moved by\n transforms to after [i18n] PATCH: 'docutils.nodes.image' to have source, line: EXAMPLE [i18n] PATCH: 'docutils.nodes.title' to have source: Table of Contents [i18n] PATCH: 'docutils.nodes.line' to have source and line: [i18n] PATCH: 'docutils.nodes.line' to have source and line: A one, two, a one two three four [i18n] PATCH: 'docutils.nodes.line' to have source and line: [i18n] PATCH: 'docutils.nodes.line' to have source and line: Half a bee, philosophically, [i18n] PATCH: 'docutils.nodes.line' to have source and line: must, ipso facto, half not be. [i18n] PATCH: 'docutils.nodes.line' to have source and line: But half the bee has got to be, [i18n] PATCH: 'docutils.nodes.line' to have source and line: vis a vis its entity. D'you see? [i18n] PATCH: 'docutils.nodes.line' to have source and line: [i18n] PATCH: 'docutils.nodes.line' to have source and line: But can a bee be said to be [i18n] PATCH: 'docutils.nodes.line' to have source and line: or not to be an entire bee, [i18n] PATCH: 'docutils.nodes.line' to have source and line: when half the bee is not a bee, [i18n] PATCH: 'docutils.nodes.line' to have source and line: due to some ancient injury? [i18n] PATCH: 'docutils.nodes.line' to have source and line: [i18n] PATCH: 'docutils.nodes.line' to have source and line: Singing... [i18n] PATCH: 'docutils.nodes.title' to have source: Ch'ien / The Creative [i18n] PATCH: 'docutils.nodes.image' to have source, line: [i18n] PATCH: 'docutils.nodes.title' to have source: A code example [i18n] PATCH: 'docutils.nodes.term' to have rawsource: DocumentationReadingWriting [i18n] PATCH: 'docutils.nodes.image' to have source, line: reStructuredText, the markup syntax [i18n] PATCH: 'docutils.nodes.title' to have source: Sidebar Title [i18n] PATCH: 'docutils.nodes.rubric' to have source and line: This is a rubric inside a sidebar [i18n] PATCH: 'docutils.nodes.title' to have source: Topic Title [app] emitting event: 'doctree-read'(,) reading sources... [ 21%] images [app] emitting event: 'env-purge-doc'(, 'images') [app] emitting event: 'source-read'('images', ['Images\n======\n\nSVG\n---\nThis is a SVG file with the dimensions 3000x3000 pixels.\n\ [i18n] PATCH: 'docutils.nodes.image' to have source, line: [i18n] PATCH: 'docutils.nodes.image' to have source and line: [i18n] PATCH: 'docutils.nodes.image' to have source, line: [i18n] PATCH: 'docutils.nodes.image' to have source and line: [i18n] PATCH: 'docutils.nodes.image' to have source, line: [i18n] PATCH: 'docutils.nodes.image' to have source and line: [i18n] PATCH: 'docutils.nodes.image' to have source, line: [i18n] PATCH: 'docutils.nodes.image' to have source and line: [app] emitting event: 'doctree-read'(>,) reading sources... [ 28%] index [app] emitting event: 'env-purge-doc'(, 'index') [app] emitting event: 'source-read'('index', ['Demo Sphinx-SimplePDF\n=====================\n\nThis PDF contains examples and test-data [app] emitting event: 'doctree-read'(>,) reading sources... [ 35%] level1/index [app] emitting event: 'env-purge-doc'(, 'level1/index') [app] emitting event: 'source-read'('level1/index', ['\n******************\nBreadcrumb Level 1\n******************\n\n .. toctree::\n [app] emitting event: 'doctree-read'(>,) reading sources... [ 42%] level1/level2/index [app] emitting event: 'env-purge-doc'(, 'level1/level2/index') [app] emitting event: 'source-read'('level1/level2/index', ['\n******************************************\n:mod:`Breadcrumb Level 2 >,) reading sources... [ 50%] level1/level2/level3/index [app] emitting event: 'env-purge-doc'(, 'level1/level2/level3/index') [app] emitting event: 'source-read'('level1/level2/level3/index', ['\n******************\nBreadcrumb Level 3\n******************\n\n .. [app] emitting event: 'doctree-read'(>,) reading sources... [ 57%] level1/level2/level3/level4/index [app] emitting event: 'env-purge-doc'(, 'level1/level2/level3/level4/in [app] emitting event: 'source-read'('level1/level2/level3/level4/index', ['\n******************\nBreadcrumb Level 4\n****************** [app] emitting event: 'doctree-read'(>,) reading sources... [ 64%] level1/level2/level3/level4/level5/index [app] emitting event: 'env-purge-doc'(, 'level1/level2/level3/level4/le [app] emitting event: 'source-read'('level1/level2/level3/level4/level5/index', ['\n******************\nBreadcrumb Level 5\n*********** [app] emitting event: 'doctree-read'(>,) reading sources... [ 71%] level1/level2/level3/level4/level5/level6/index [app] emitting event: 'env-purge-doc'(, 'level1/level2/level3/level4/le [app] emitting event: 'source-read'('level1/level2/level3/level4/level5/level6/index', ['\n******************\nBreadcrumb Level 6\n**** [app] emitting event: 'doctree-read'(>,) reading sources... [ 78%] lists_tables [app] emitting event: 'env-purge-doc'(, 'lists_tables') [app] emitting event: 'source-read'('lists_tables', ['\n**************\nLists & Tables\n**************\n\n.. contents:: Table of Conten [i18n] PATCH: 'docutils.nodes.title' to have source: Table of Contents [i18n] PATCH: 'docutils.nodes.term' to have rawsource: Term [i18n] PATCH: 'docutils.nodes.term' to have rawsource: Term [i18n] PATCH: 'docutils.nodes.term' to have rawsource: Term [i18n] PATCH: 'docutils.nodes.term' to have rawsource: Is it the spaces in the term? [i18n] PATCH: 'docutils.nodes.term' to have rawsource: Is it the paragraph above the list maybe? [i18n] PATCH: 'docutils.nodes.term' to have rawsource: Is it everything all at once? [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Author [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Address [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Contact [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Authors [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: organization [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: date [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: status [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: revision [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: version [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: copyright [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: field name [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: field name 2 [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: Dedication [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: abstract [i18n] PATCH: 'docutils.nodes.image' to have source, line: [i18n] PATCH: 'docutils.nodes.image' to have source and line: [i18n] PATCH: 'docutils.nodes.image' to have source, line: [i18n] PATCH: 'docutils.nodes.image' to have source and line: [i18n] PATCH: 'docutils.nodes.image' to have source, line: [i18n] PATCH: 'docutils.nodes.image' to have source and line: [i18n] PATCH: 'docutils.nodes.image' to have source, line: [i18n] PATCH: 'docutils.nodes.image' to have source and line: [app] emitting event: 'doctree-read'(>,) C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\lists_tables.rst:4: (INFO/1) Enumerated list start value not ordinal-1: “3” (ordinal 3) [filtered system message] C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\lists_tables.rst:4: (INFO/1) Enumerated list start value not ordinal-1: “C” (ordinal 3) [filtered system message] C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\lists_tables.rst:4: (INFO/1) Enumerated list start value not ordinal-1: “iii” (ordinal 3) [filtered system message] C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\lists_tables.rst:4: (INFO/1) Duplicate explicit target name: “yahoo”. [filtered system message] C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\lists_tables.rst:4: (INFO/1) Duplicate explicit target name: “yahoo”. [filtered system message] C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\lists_tables.rst:4: (INFO/1) Duplicate explicit target name: “yahoo”. [filtered system message] C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\lists_tables.rst:4: (INFO/1) Duplicate explicit target name: “yahoo”. [filtered system message] C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\lists_tables.rst:4: (INFO/1) Duplicate explicit target name: “yahoo”. [filtered system message] C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\lists_tables.rst:4: (INFO/1) Duplicate explicit target name: “yahoo”. [filtered system message] C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\lists_tables.rst:4: (INFO/1) Duplicate explicit target name: “yahoo”. [filtered system message] C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\lists_tables.rst:4: (INFO/1) Duplicate explicit target name: “yahoo”. [filtered system message] C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\lists_tables.rst:4: (INFO/1) Duplicate explicit target name: “yahoo”. [filtered system message] C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\lists_tables.rst:4: (INFO/1) Duplicate explicit target name: “yahoo”. [filtered system message] C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\lists_tables.rst:4: (INFO/1) Enumerated list start value not ordinal-1: “B” (ordinal 2) [filtered system message] C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\lists_tables.rst:4: (INFO/1) Enumerated list start value not ordinal-1: “C” (ordinal 3) [filtered system message] C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\lists_tables.rst:368: (INFO/1) Unexpected possible title overline or transition. Treating it as ordinary text because it’s so short. [filtered system message] reading sources... [ 85%] long [app] emitting event: 'env-purge-doc'(, 'long') [app] emitting event: 'source-read'('long', ["\n***************\nLong Sticky Nav\n***************\n\n.. contents:: Table of Contents\n\ [i18n] PATCH: 'docutils.nodes.title' to have source: Table of Contents [app] emitting event: 'doctree-read'(>,) C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\long.rst:157: (INFO/1) Duplicate implicit target name: “subsubmenu 1”. [filtered system message] C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\long.rst:182: (INFO/1) Duplicate implicit target name: “submenu 1”. [filtered system message] C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\long.rst:187: (INFO/1) Duplicate implicit target name: “subsubmenu 1”. [filtered system message] C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\long.rst:192: (INFO/1) Duplicate implicit target name: “submenu 2”. [filtered system message] C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\long.rst:197: (INFO/1) Duplicate implicit target name: “subsubmenu 1”. [filtered system message] C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\long.rst:202: (INFO/1) Duplicate implicit target name: “submenu 3”. [filtered system message] C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\long.rst:207: (INFO/1) Duplicate implicit target name: “submenu 4”. [filtered system message] C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\long.rst:212: (INFO/1) Duplicate implicit target name: “submenu 5”. [filtered system message] reading sources... [ 92%] sphinx_needs [app] emitting event: 'env-purge-doc'(, 'sphinx_needs') [app] emitting event: 'source-read'('sphinx_needs', ["\nSphinx-Needs objects\n====================\n\n.. req:: Sphinx-Needs Theme exten [app] emitting event: 'doctree-read'(
,) reading sources... [100%] structure [app] emitting event: 'env-purge-doc'(, 'structure') [app] emitting event: 'source-read'('structure', ['\n*******************\nStructural Elements\n*******************\n\n.. contents:: Tab [i18n] PATCH: 'docutils.nodes.title' to have source: Table of Contents [i18n] PATCH: 'docutils.nodes.image' to have source, line: [app] emitting event: 'doctree-read'(
,) C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\structure.rst:72: (INFO/1) Duplicate implicit target name: “document section”. [filtered system message] C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\structure.rst:82: (INFO/1) Duplicate implicit target name: “document subsection”. [filtered system message] [app] emitting event: 'env-updated'(,) [app] adding js_file: 'assets/jsonview.bundle.js', {'priority': 500} [app] adding js_file: 'assets/jsonview_loader.js', {'priority': 500} [app] adding stylesheet: 'assets/jsonview.bundle.css' Copying static files for sphinx-needs datatables support...C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\datatables.min.css C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\datatables.min.js C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\datatables_loader.js C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\sphinx_needs_collapse.js C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\Buttons-1.5.1\css\buttons.dataTables.min.css C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\Buttons-1.5.1\css\common.scss C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\Buttons-1.5.1\css\mixins.scss C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\Buttons-1.5.1\js\buttons.colVis.min.js C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\Buttons-1.5.1\js\buttons.flash.min.js C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\Buttons-1.5.1\js\buttons.html5.js C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\Buttons-1.5.1\js\buttons.html5.min.js C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\Buttons-1.5.1\js\buttons.print.min.js C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\Buttons-1.5.1\js\dataTables.buttons.min.js C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\Buttons-1.5.1\swf\flashExport.swf C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\ColReorder-1.4.1\css\colReorder.dataTables.min.css C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\ColReorder-1.4.1\js\dataTables.colReorder.min.js C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\DataTables-1.10.16\css\jquery.dataTables.min.css C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\DataTables-1.10.16\images\sort_asc.png C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\DataTables-1.10.16\images\sort_asc_disabled.png C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\DataTables-1.10.16\images\sort_both.png C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\DataTables-1.10.16\images\sort_desc.png C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\DataTables-1.10.16\images\sort_desc_disabled.png C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\DataTables-1.10.16\js\jquery.dataTables.min.js C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\FixedColumns-3.2.4\css\fixedColumns.dataTables.min.css C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\FixedColumns-3.2.4\js\dataTables.fixedColumns.min.js C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\FixedHeader-3.1.3\css\fixedHeader.dataTables.min.css C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\FixedHeader-3.1.3\js\dataTables.fixedHeader.min.js C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\JSZip-2.5.0\jszip.min.js C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\pdfmake-0.1.32\pdfmake.min.js C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\pdfmake-0.1.32\vfs_fonts.js C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\Responsive-2.2.1\css\responsive.dataTables.min.css C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\Responsive-2.2.1\js\dataTables.responsive.min.js C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\Scroller-1.4.4\css\scroller.dataTables.min.css C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\libs\html\Scroller-1.4.4\js\dataTables.scroller.min.js [app] adding js_file: 'sphinx-needs/libs/html/datatables.min.js', {'priority': 500} [app] adding js_file: 'sphinx-needs/libs/html/datatables_loader.js', {'priority': 500} [app] adding stylesheet: 'sphinx-needs/libs/html/datatables.min.css' [app] adding js_file: 'sphinx-needs/libs/html/sphinx_needs_collapse.js', {'priority': 500} [app] adding stylesheet: 'sphinx-needs/common.css' support...[ 25%] common.css [app] adding stylesheet: 'sphinx-needs/layouts.css'support...[ 50%] C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\css\modern\layouts.css [app] adding stylesheet: 'sphinx-needs/modern.css' support...[ 75%] C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\css\modern\modern.css [app] adding stylesheet: 'sphinx-needs/styles.css' support...[100%] C:\git-repos\PDF-Generation\.venv-simplepdf\lib\site-packages\sphinxcontrib\needs\css\modern\styles.css C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\test_py_module\test.py:docstring of test_py_module.test.Foo:17: WARNING: Footnote [1] is not referenced. C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\demo.rst:265: WARNING: Footnote [4] is not referenced. C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\demo.rst:18: ERROR: Undefined substitution referenced: "problematic". C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\demo.rst:271: WARNING: duplicate citation Citation, other instance in C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\api.rst C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\demo.rst:265: ERROR: Unknown target name: "5". C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\demo.rst:318: ERROR: Unknown target name: "hyperlink reference without a target". looking for now-outdated files... [app] emitting event: 'env-get-updated'(,) none found pickling environment... done checking consistency... [app] emitting event: 'env-check-consistency'(,) done preparing documents... done assembling single document... structure demo lists_tables api sphinx_needs level1/index level1/level2/index level1/level2/level3/index level1/level2/level3/level4/index level1/level2/level3/level4/level5/index level1/level2/level3/level4/level5/level6/index long images [app] emitting event: 'missing-reference'(, >, , >) C:\git-repos\PDF-Generation\sphinx-simplepdf\demo\demo.rst:279: WARNING: citation not found: nonexistent [app] emitting event: 'missing-reference'(, >, < [app] emitting event: 'missing-reference'(, >, < [app] emitting event: 'missing-reference'(, , , , , >, [app] emitting event: 'missing-reference'(, , , , [app] emitting event: 'missing-reference'(, , , , >, [app] emitting event: 'missing-reference'(, >, [app] emitting event: 'missing-reference'(, >, [app] emitting event: 'missing-reference'(, >, [app] emitting event: 'missing-reference'(, >, [app] emitting event: 'missing-reference'(, >, [app] emitting event: 'missing-reference'(, , , >, < [app] emitting event: 'missing-reference'(, >, < [app] emitting event: 'doctree-resolved'(>, 'index') done writing... [app] emitting event: 'html-page-context'('index', 'page.html', {'embedded': False, 'project': 'Sphinx-SimplePDF-DEMO', 'release': '', 'versi done writing additional files... done copying images... [ 16%] _static/yi_jing_01_chien.jpg copying images... [ 33%] _static/example.jpg copying images... [ 50%] _static/svg_3000x3000.svg copying images... [ 66%] _static/svg_process.svg copying images... [ 83%] _static/phetus_2560x2176.png copying images... [100%] _static/phetus_2560x2176.jpg copying downloadable files... [100%] _static/yi_jing_01_chien.jpg copying static files... done copying extra files... done dumping object inventory... done WARNING: Ignored `text-shadow: none` at 654:3, unknown property. WARNING: Ignored `flex-basis: unset` at 753:7, invalid value. WARNING: Ignored `min-width: unset` at 786:3, invalid value. WARNING: Ignored `max-width: unset` at 787:3, invalid value. WARNING: Ignored `white-space: -o-pre-wrap` at 810:3, invalid value. WARNING: Error: Expected for declaration name, got literal. at 13:645. WARNING: Error: Expected for declaration name, got literal. at 13:8140. WARNING: Ignored `zoom:1` at 13:8148, unknown property. WARNING: Error: Expected for declaration name, got literal. at 13:8720. WARNING: Ignored `background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #fff), color-stop(100%, #dcdcdc))` at 13:9010, invalid value. WARNING: Ignored `background:-webkit-linear-gradient(top, #fff 0%, #dcdcdc 100%)` at 13:9118, invalid value. WARNING: Ignored `background:-moz-linear-gradient(top, #fff 0%, #dcdcdc 100%)` at 13:9181, invalid value. WARNING: Ignored `background:-ms-linear-gradient(top, #fff 0%, #dcdcdc 100%)` at 13:9241, invalid value. WARNING: Ignored `background:-o-linear-gradient(top, #fff 0%, #dcdcdc 100%)` at 13:9300, invalid value. WARNING: Ignored `box-shadow:none` at 13:9722, unknown property. WARNING: Ignored `background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #585858), color-stop(100%, #111))` at 13:9872, invalid value. WARNING: Ignored `background:-webkit-linear-gradient(top, #585858 0%, #111 100%)` at 13:9980, invalid value. WARNING: Ignored `background:-moz-linear-gradient(top, #585858 0%, #111 100%)` at 13:10043, invalid value. WARNING: Ignored `background:-ms-linear-gradient(top, #585858 0%, #111 100%)` at 13:10103, invalid value. WARNING: Ignored `background:-o-linear-gradient(top, #585858 0%, #111 100%)` at 13:10162, invalid value. WARNING: Ignored `background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #2b2b2b), color-stop(100%, #0c0c0c))` at 13:10384, invalid value. WARNING: Ignored `background:-webkit-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%)` at 13:10495, invalid value. WARNING: Ignored `background:-moz-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%)` at 13:10561, invalid value. WARNING: Ignored `background:-ms-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%)` at 13:10624, invalid value. WARNING: Ignored `background:-o-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%)` at 13:10686, invalid value. WARNING: Ignored `box-shadow:inset 0 0 3px #111` at 13:10811, unknown property. WARNING: Ignored `background:-webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255,255,255,0)), color-stop(25%, rgba(255,255,255,0.9)), color-stop(75%, rgba(255,255,255,0.9)), color-stop(100%, rgba(255,255,255,0)))` at 13:11115, invalid value. WARNING: Ignored `background:-webkit-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%)` at 13:11328, invalid value. WARNING: Ignored `background:-moz-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%)` at 13:11473, invalid value. WARNING: Ignored `background:-ms-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%)` at 13:11615, invalid value. WARNING: Ignored `background:-o-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%)` at 13:11756, invalid value. WARNING: Error: Expected for declaration name, got literal. at 13:12362. WARNING: Expected a media type, got 'screen/**/and/**/(max-width: 767px)' WARNING: Invalid media type ' screen and (max-width: 767px)' the whole @media rule was ignored at 13:13576. WARNING: Expected a media type, got 'screen/**/and/**/(max-width: 640px)' WARNING: Invalid media type ' screen and (max-width: 640px)' the whole @media rule was ignored at 13:13779. WARNING: Ignored `box-shadow:3px 3px 8px rgba(0,0,0,0.3)` at 16:556, unknown property. WARNING: Ignored `background-image:-webkit-linear-gradient(top, #fff 0%, #e9e9e9 100%)` at 16:1122, invalid value. WARNING: Ignored `background-image:-moz-linear-gradient(top, #fff 0%, #e9e9e9 100%)` at 16:1191, invalid value. WARNING: Ignored `background-image:-ms-linear-gradient(top, #fff 0%, #e9e9e9 100%)` at 16:1257, invalid value. WARNING: Ignored `background-image:-o-linear-gradient(top, #fff 0%, #e9e9e9 100%)` at 16:1322, invalid value. WARNING: Ignored `filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr="white", EndColorStr="#e9e9e9")` at 16:1453, unknown property. WARNING: Ignored `user-select:none` at 16:1632, unknown property. WARNING: Ignored `background-image:-webkit-linear-gradient(top, #fff 0%, #f9f9f9 100%)` at 16:1829, invalid value. WARNING: Ignored `background-image:-moz-linear-gradient(top, #fff 0%, #f9f9f9 100%)` at 16:1898, invalid value. WARNING: Ignored `background-image:-ms-linear-gradient(top, #fff 0%, #f9f9f9 100%)` at 16:1964, invalid value. WARNING: Ignored `background-image:-o-linear-gradient(top, #fff 0%, #f9f9f9 100%)` at 16:2029, invalid value. WARNING: Ignored `filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr="#ffffff", EndColorStr="#f9f9f9")` at 16:2160, unknown property. WARNING: Ignored `background-image:-webkit-linear-gradient(top, #f3f3f3 0%, #e2e2e2 100%)` at 16:2516, invalid value. WARNING: Ignored `background-image:-moz-linear-gradient(top, #f3f3f3 0%, #e2e2e2 100%)` at 16:2588, invalid value. WARNING: Ignored `background-image:-ms-linear-gradient(top, #f3f3f3 0%, #e2e2e2 100%)` at 16:2657, invalid value. WARNING: Ignored `background-image:-o-linear-gradient(top, #f3f3f3 0%, #e2e2e2 100%)` at 16:2725, invalid value. WARNING: Ignored `filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr="#f3f3f3", EndColorStr="#e2e2e2")` at 16:2862, unknown property. WARNING: Ignored `box-shadow:inset 1px 1px 3px #999999` at 16:2975, unknown property. WARNING: Ignored `box-shadow:inset 1px 1px 3px #999999` at 16:3356, unknown property. WARNING: Ignored `background-image:-webkit-linear-gradient(top, #eaeaea 0%, #ccc 100%)` at 16:3418, invalid value. WARNING: Ignored `background-image:-moz-linear-gradient(top, #eaeaea 0%, #ccc 100%)` at 16:3487, invalid value. WARNING: Ignored `background-image:-ms-linear-gradient(top, #eaeaea 0%, #ccc 100%)` at 16:3553, invalid value. WARNING: Ignored `background-image:-o-linear-gradient(top, #eaeaea 0%, #ccc 100%)` at 16:3618, invalid value. WARNING: Ignored `filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr="#eaeaea", EndColorStr="#cccccc")` at 16:3749, unknown property. WARNING: Ignored `background-image:-webkit-linear-gradient(top, #f9f9f9 0%, #e0e0e0 100%)` at 16:4097, invalid value. WARNING: Ignored `background-image:-moz-linear-gradient(top, #f9f9f9 0%, #e0e0e0 100%)` at 16:4169, invalid value. WARNING: Ignored `background-image:-ms-linear-gradient(top, #f9f9f9 0%, #e0e0e0 100%)` at 16:4238, invalid value. WARNING: Ignored `background-image:-o-linear-gradient(top, #f9f9f9 0%, #e0e0e0 100%)` at 16:4306, invalid value. WARNING: Ignored `filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr="#f9f9f9", EndColorStr="#e0e0e0")` at 16:4443, unknown property. WARNING: Ignored `text-shadow:0 1px 0 #c4def1` at 16:4687, unknown property. WARNING: Ignored `background-image:-webkit-linear-gradient(top, #bddef4 0%, #79ace9 100%)` at 16:4753, invalid value. WARNING: Ignored `background-image:-moz-linear-gradient(top, #bddef4 0%, #79ace9 100%)` at 16:4825, invalid value. WARNING: Ignored `background-image:-ms-linear-gradient(top, #bddef4 0%, #79ace9 100%)` at 16:4894, invalid value. WARNING: Ignored `background-image:-o-linear-gradient(top, #bddef4 0%, #79ace9 100%)` at 16:4962, invalid value. WARNING: Ignored `filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr="#bddef4", EndColorStr="#79ace9")` at 16:5099, unknown property. WARNING: Ignored `box-shadow:3px 3px 5px rgba(0,0,0,0.3)` at 16:5559, unknown property. WARNING: Ignored `background-image:-webkit-linear-gradient(top, #f0f0f0 0%, #dadada 100%)` at 16:6319, invalid value. WARNING: Ignored `background-image:-moz-linear-gradient(top, #f0f0f0 0%, #dadada 100%)` at 16:6391, invalid value. WARNING: Ignored `background-image:-ms-linear-gradient(top, #f0f0f0 0%, #dadada 100%)` at 16:6460, invalid value. WARNING: Ignored `background-image:-o-linear-gradient(top, #f0f0f0 0%, #dadada 100%)` at 16:6528, invalid value. WARNING: Ignored `filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr="#f0f0f0", EndColorStr="#dadada")` at 16:6665, unknown property. WARNING: Ignored `box-shadow:inset 1px 1px 3px #666` at 16:6778, unknown property. WARNING: Ignored `background:-ms-radial-gradient(center, ellipse farthest-corner, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.7) 100%)` at 16:7819, invalid value. WARNING: Ignored `background:-moz-radial-gradient(center, ellipse farthest-corner, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.7) 100%)` at 16:7925, invalid value. WARNING: Ignored `background:-o-radial-gradient(center, ellipse farthest-corner, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.7) 100%)` at 16:8032, invalid value. WARNING: Ignored `background:-webkit-gradient(radial, center center, 0, center center, 497, color-stop(0, rgba(0,0,0,0.3)), color-stop(1, rgba(0,0,0,0.7)))` at 16:8137, invalid value. WARNING: Ignored `background:-webkit-radial-gradient(center, ellipse farthest-corner, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.7) 100%)` at 16:8275, invalid value. WARNING: Expected a media type, got 'screen/**/and/**/(max-width: 640px)' WARNING: Invalid media type ' screen and (max-width: 640px)' the whole @media rule was ignored at 16:8502. WARNING: Ignored `box-shadow:0 0 3px #444` at 28:907, unknown property. WARNING: Ignored `box-shadow:0 0 3px #444` at 28:2080, unknown property. WARNING: Ignored `box-shadow:0 12px 30px rgba(0,0,0,0.6)` at 28:3347, unknown property. WARNING: Expected a media type, got 'screen/**/and/**/(max-width: 767px)' WARNING: Invalid media type ' screen and (max-width: 767px)' the whole @media rule was ignored at 28:3845. WARNING: Ignored `overflow-x: auto` at 9:3, unknown property. WARNING: Ignored `overflow-x: auto` at 20:5, unknown property. WARNING: Ignored `box-shadow: None ` at 92:5, unknown property. WARNING: Ignored `overflow-x: auto` at 113:5, unknown property. WARNING: Ignored `text-orientation: upright` at 5:5, unknown property. WARNING: Ignored `writing-mode: sideways-lr` at 6:5, unknown property. WARNING: Ignored `text-orientation: upright` at 11:5, unknown property. WARNING: Ignored `writing-mode: sideways-rl` at 12:5, unknown property. WARNING: Ignored `box-shadow: None` at 19:5, unknown property. WARNING: Ignored `box-shadow: None` at 31:5, unknown property. WARNING: Anchor defined twice: 'table-of-contents' WARNING: Anchor defined twice: 'id1' WARNING: Anchor defined twice: 'id2' WARNING: Anchor defined twice: 'id3' WARNING: Anchor defined twice: 'id4' WARNING: Anchor defined twice: 'id5' WARNING: Anchor defined twice: 'id6' WARNING: Anchor defined twice: 'id7' WARNING: Anchor defined twice: 'id8' WARNING: Anchor defined twice: 'id9' WARNING: Anchor defined twice: 'id10' WARNING: Anchor defined twice: 'id11' WARNING: Anchor defined twice: 'table-of-contents' WARNING: Anchor defined twice: 'id17' WARNING: Anchor defined twice: 'id18' WARNING: Anchor defined twice: 'id19' WARNING: Anchor defined twice: 'id22' WARNING: Anchor defined twice: 'id23' WARNING: Anchor defined twice: 'id24' WARNING: Anchor defined twice: 'id25' WARNING: Anchor defined twice: 'id27' WARNING: Anchor defined twice: 'id28' WARNING: Anchor defined twice: 'id29' WARNING: Anchor defined twice: 'id30' WARNING: Anchor defined twice: 'id31' WARNING: Anchor defined twice: 'id32' WARNING: Anchor defined twice: 'id33' WARNING: Anchor defined twice: 'id34' WARNING: Anchor defined twice: 'id11' WARNING: Anchor defined twice: 'id12' WARNING: Anchor defined twice: 'id13' WARNING: Anchor defined twice: 'id14' WARNING: Anchor defined twice: 'id15' WARNING: Anchor defined twice: 'id16' WARNING: Anchor defined twice: 'table-of-contents' WARNING: Anchor defined twice: 'id2' WARNING: Anchor defined twice: 'id3' WARNING: Anchor defined twice: 'id4' WARNING: Anchor defined twice: 'id5' WARNING: Anchor defined twice: 'id6' WARNING: Anchor defined twice: 'id7' WARNING: Anchor defined twice: 'id8' WARNING: Anchor defined twice: 'id1' WARNING: Anchor defined twice: 'citation' WARNING: Anchor defined twice: 'id1' WARNING: Anchor defined twice: 'table-of-contents' WARNING: Anchor defined twice: 'id9' WARNING: Anchor defined twice: 'id10' WARNING: Anchor defined twice: 'id11' WARNING: Anchor defined twice: 'id12' WARNING: Anchor defined twice: 'id13' WARNING: Anchor defined twice: 'id14' WARNING: Anchor defined twice: 'id15' WARNING: Anchor defined twice: 'id16' WARNING: Anchor defined twice: 'id17' WARNING: Anchor defined twice: 'id18' WARNING: Anchor defined twice: 'id19' WARNING: Anchor defined twice: 'id20' WARNING: Anchor defined twice: 'id21' WARNING: Anchor defined twice: 'id22' WARNING: Anchor defined twice: 'id23' WARNING: Anchor defined twice: 'id24' WARNING: Anchor defined twice: 'id25' WARNING: Anchor defined twice: 'id26' WARNING: Anchor defined twice: 'id27' WARNING: Anchor defined twice: 'id28' WARNING: Anchor defined twice: 'id29' WARNING: Anchor defined twice: 'id30' WARNING: Anchor defined twice: 'id31' WARNING: Anchor defined twice: 'id32' WARNING: Anchor defined twice: 'id33' WARNING: Anchor defined twice: 'id34' WARNING: Anchor defined twice: 'id35' WARNING: Anchor defined twice: 'id36' WARNING: Anchor defined twice: 'id37' WARNING: Anchor defined twice: 'id38' WARNING: Anchor defined twice: 'id39' WARNING: Anchor defined twice: 'id40' WARNING: Anchor defined twice: 'id41' WARNING: Anchor defined twice: 'id42' WARNING: Anchor defined twice: 'id43' WARNING: Anchor defined twice: 'id44' WARNING: Anchor defined twice: 'id45' WARNING: Anchor defined twice: 'id46' WARNING: Anchor defined twice: 'id1' WARNING: Anchor defined twice: 'id2' WARNING: Anchor defined twice: 'id3' WARNING: Anchor defined twice: 'id4' WARNING: Anchor defined twice: 'id5' WARNING: Anchor defined twice: 'id6' WARNING: Anchor defined twice: 'id7' WARNING: Anchor defined twice: 'id8' WARNING: Anchor defined twice: 'images' ERROR: No anchor # for internal URI reference ERROR: No anchor #id62 for internal URI reference ERROR: No anchor #id62 for internal URI reference ERROR: No anchor #id63 for internal URI reference ERROR: No anchor #id63 for internal URI reference ERROR: No anchor # for internal URI reference ERROR: No anchor # for internal URI reference [app] emitting event: 'build-finished'(None,) Checking sphinx-needs warnings build succeeded, 7 warnings. The HTML page is in _build. (.venv-simplepdf) PS C:\git-repos\PDF-Generation\sphinx-simplepdf\demo> ```
danwos commented 1 year ago

During testing in a fresh new envv, my OS was not using sphinx-build from my .venv, but from a system-wide installation. Only after reactivating the venv, the correct sphinx-build was used.

@1kastner : Can you please check with which sphinx-build, that it is really taken from the right venv?

@sachin-suresh-rapyuta : I'm happy that it has worked. If you have any idea, what went wrong, please let me know. Maybe we can add some hints to the docs, if other users have similar problems in future

danwos commented 1 year ago

FYI: The image in page 63 still takes extra space.

I know, still need to work on images in tables.

Why not in the demo folder? Why not in my project folder?

Mhh an interesting point, as Sphinx-SimplePDF calls 2 external tools and calculates some paths. So maybe there is a problem with this calculation...

Was your venv active, when you were inside the demo or your project folder?

1kastner commented 1 year ago

The correct sphinx-build was used:

(.venv-simplepdf) PS C:\git-repos\PDF-Generation\sphinx-simplepdf\demo> get-command sphinx-build

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Application     sphinx-build.exe                                   0.0.0.0    C:\git-repos\PDF-Generation\.venv-simplepdf\Scripts\sphinx-build.exe

(.venv-simplepdf) PS C:\git-repos\PDF-Generation\sphinx-simplepdf\demo>
1kastner commented 1 year ago

I deactivated and reactivated the environment and then re-ran the command, without any improvement in the PDF. The timestamp, however, is updated.

danwos commented 1 year ago

@1kastner: Thanks for the test. Your output gave me the hint to recheck my path-calculation, as it may not work on windows. And indeed, one path may not have worked.

Can you please pull the latest commit and recheck it again? Thanks.

sachin-suresh-rapyuta commented 1 year ago

Was your venv active, when you were inside the demo or your project folder?

I was able to get the green cover page PDF from my project folder too! But Debug info is missing (I have added simplepdf_debug = True).

Here are the steps I followed:

1. python3.8 -m venv simple_pdf_venv
2. source simple_pdf_venv/bin/activate
3. pip3 install -r requirements.txt
4. pip3 install sphinx-simplepdf
5. sphinx-build -a -E -b simplepdf . build/

Version:

$ sphinx-build --version
sphinx-build 5.1.1

$ python --version
Python 3.8.10

Operating System:

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.4 LTS
Release:        20.04
Codename:       focal

What is not working now:

  1. If I make simplepdf from project folder without virtual env, PDF generates but:

    • with RED cover (new updated theme is not picked)
    • Image issue STILL EXIST.
  2. If I sphinx-build -a -E -b simplepdf . build/ inside virtualenv, PDF generates with:

    • GREEN cover page (new theme reflecting)
    • Image (in tables, list) issue STILL EXIST.
    • Cover page image is extremely large (details of cover image attached)
    • index.html loses its layout with just the below settings in conf.py
    simplepdf_debug = True
    
    simplepdf_vars = {
        'cover-overlay': 'rgba(26, 150, 26, 0.7)',
        'primary-opaque': 'rgba(26, 150, 26, 0.7)',
        'cover-bg': 'url(frog.jpg) no-repeat center',
        'primary': '#1a961a',
        'secondary': '#379683',
        'cover': '#ffffff',
        'white': '#ffffff',
        'links': '#1a961a',
        'top-left-content': '"Header left"',
        'top-center-content': '"Header center"',
        'top-right-content': '"Header right"',
        'bottom-left-content': 'counter(page)',
        'bottom-center-content': '"Bottom center"',
        'bottom-right-content': 'string(heading)',
    }
    
      plantuml_output_format = "svg_img"
      local_plantuml_path = os.path.join(os.path.dirname(__file__), "../", "docs", "utils", "plantuml.jar")
      plantuml = f"java -Djava.awt.headless=true -jar {local_plantuml_path}"
    
    def setup_jquery(app, exception):
        """
        Inject jQuery if Sphinx>=6.x
    
        Staring on Sphinx 6.0, jQuery is not included with it anymore.
        As this extension depends on jQuery, we are including it when Sphinx>=6.x
      """
    
      if sphinx.version_info >= (5, 0, 0):
          # https://jquery.com/download/#using-jquery-with-a-cdn
          jquery_cdn_url = "https://code.jquery.com/jquery-3.6.0.min.js"
          html_js_files = getattr(app.config, "html_js_files", [])
          html_js_files.append((
              jquery_cdn_url,
              {
                  'integrity': 'sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=',
                  'crossorigin': 'anonymous'
              }
          ))
          app.config.html_js_files = html_js_files

image

danwos commented 1 year ago

Step 4. pip3 install sphinx-simplepdf is not correct (for the moment). This fetches the latest release from PyPi, which does not include all the fixes from the last days. I will make a new release, as soon as I got your installations working. :)

Replace 4. please with an installation from github repo.

Example:


git clone git@github.com:useblocks/sphinx-simplepdf.git
cd my_project
# Your steps 1-2 
pip install ../sphinx-simplepdf # or wherever it got stored
pip install my-projec-requirements # So I guess step 3
# Step 4 to build pdf
sachin-suresh-rapyuta commented 1 year ago

Sorry, did you mean to git clone sphinx-simple pdf within my project folder? It that the best way to do?

danwos commented 1 year ago

Sorry, did you mean to git clone sphinx-simple pdf within my project folder? It that the best way to do?

No, you can clone it wherever you want. The installation folder is not important. (And I think you already have cloned it somewhere, as you tested the DEMO PDF build)

You just need to install it inside your venv. So activate the venv from your project and then pip install -e ../path/to/simplepdf

I added -e option, as in this case you can simply update the cloned SimplePDF folder (if needed later) and your venv recognizes these changes without the need to update it by hand.

1kastner commented 1 year ago

After I ran pip install --upgrade -e . in the cloned and freshly pulled directory instad of the installation from the main branch, the PDF looked better.

Sphinx-SimplePDF-DEMO.pdf

danwos commented 1 year ago

After I ran pip install --upgrade -e . in the cloned and freshly pulled directory instad of the installation from the main branch, the PDF looked better.

Sphinx-SimplePDF-DEMO.pdf

Yehaa :) I think all the other problems are related to the installed Fonts.

It looks like the theme is using some fonts for some special cases (code-blocks, ...) which are not available on windows (by default).

I already changed the fonts configuration and added the used fonts as files to this package, so that there is no need to install it. But it looks like some custom-css rules from sphinx (-extensions) are using different fonts.

I'll create a new ticket for this topic. Done, it's #25

sachin-suresh-rapyuta commented 1 year ago

Cool! I see the images in lists are rendered. For now, I guess these should be the steps until you create a final release:

1. python3.8 -m venv simplepdfvenv
2. source simplepdfvenv/bin/activate
3. pip install ../../<cd_ path_to_ cloned_ git @github.com: useblocks/sphinx-simplepdf.git>
4. pip3 install -r requirements.txt
5. sphinx-build -a -E -b simplepdf . build/ 
or
   make simplepdf

@danwos thanks for all your efforts and @1kastner for creating this issue PR!

ANOTHER CASE for IMAGE:

Can you also add a case in your demo PDF for images inside the table td? Not sure if the below table breaks because the image inside this cell is big! image

And we also need to see how to make this work without having to create a virtualenv.

danwos commented 1 year ago

@sachin-suresh-rapyuta Great that it is working now.

For tables there is already a test in the DEMO PDF. The last not matching Image is inside a table. There is even a second image on the same row, but not rendered in the PDF :/

This all should also work without a virtualenv. Just install it in your system python installation. Same commands, but without venv creation and activation.

I close this issue now, as image sizing normally works. And for the table-image problem I create a new issue.

sachin-suresh-rapyuta commented 1 year ago

@1kastner: Thanks for the test. Your output gave me the hint to recheck my path-calculation, as it may not work on windows. And indeed, one path may not have worked.

Can you please pull the latest commit and recheck it again? Thanks.

@danwos I created a new issue (https://github.com/useblocks/sphinx-simplepdf/issues/38). I still face issues where an old theme PDF is generated if I don't use the virtualenv. Can you please take a look and provide a solution?