diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..205021e --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Enforce Unix newlines +* text=auto eol=lf diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..906f6fd --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,15 @@ +version: 2 +updates: + - package-ecosystem: 'github-actions' + directory: '/' + cooldown: + default-days: 7 + schedule: + interval: 'monthly' + groups: + github-actions: + patterns: + - '*' + update-types: + - 'minor' + - 'patch' diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..f35cbfc --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,71 @@ +name: CI + +on: + push: + branches-ignore: + - "dependabot/**" + tags: + - "*" + pull_request: + workflow_dispatch: + +env: + FORCE_COLOR: 2 + RUBY: "3.4" + +permissions: + contents: read + +jobs: + test: + runs-on: ubuntu-latest + timeout-minutes: 10 + + steps: + - name: Clone repository + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + # jekyll-last-modified-at reads each file's last commit date + fetch-depth: 0 + + - name: Set up Ruby + uses: ruby/setup-ruby@95ef2b042f9d7a56d8268cba8559e2842e2ad01b # v1.321.0 + with: + ruby-version: ${{ env.RUBY }} + bundler-cache: true + + - name: Run jekyll doctor + run: bundle exec jekyll doctor + + - name: Build docs + run: bundle exec jekyll build + env: + JEKYLL_ENV: production + + - name: Upload artifact + if: github.repository == 'bleachbit/docs' && github.event_name != 'pull_request' && github.ref == 'refs/heads/gh-pages' + uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5.0.0 + + deploy: + needs: test + if: github.repository == 'bleachbit/docs' && github.event_name != 'pull_request' && github.ref == 'refs/heads/gh-pages' + runs-on: ubuntu-latest + timeout-minutes: 10 + + concurrency: + group: pages + cancel-in-progress: false + + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + + permissions: + pages: write + id-token: write + + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128 # v5.0.0 diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml new file mode 100644 index 0000000..d4c49c9 --- /dev/null +++ b/.github/workflows/codeql.yml @@ -0,0 +1,57 @@ +name: CodeQL + +on: + push: + branches: + - main + - "!dependabot/**" + pull_request: + branches: + - main + - "!dependabot/**" + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ github.event_name == 'pull_request' }} + +permissions: {} + +jobs: + analyze: + name: Analyze (${{ matrix.language }}) + runs-on: ubuntu-latest + timeout-minutes: 15 + + permissions: + security-events: write # upload results to code scanning + packages: read # fetch internal/private CodeQL packs + actions: read + contents: read + + strategy: + fail-fast: false + matrix: + include: + - language: actions + build-mode: none + - language: javascript + build-mode: none + + steps: + - name: Clone repository + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + + - name: Initialize CodeQL + uses: github/codeql-action/init@cdf488f595d80d6e07e03d4674febd5ab45fa938 # v4.37.9 + with: + languages: ${{ matrix.language }} + build-mode: ${{ matrix.build-mode }} + queries: +security-and-quality + + - name: Perform CodeQL analysis + uses: github/codeql-action/analyze@cdf488f595d80d6e07e03d4674febd5ab45fa938 # v4.37.9 + with: + category: /language:${{ matrix.language }} diff --git a/.gitignore b/.gitignore index a827de0..30a73b8 100644 --- a/.gitignore +++ b/.gitignore @@ -6,5 +6,7 @@ _pages # Ruby/Jekyll generated files .bundle/ vendor/ -Gemfile.lock .jekyll-cache/ + +# Local Netlify folder +.netlify diff --git a/404.md b/404.md index a35aa67..c41d64f 100644 --- a/404.md +++ b/404.md @@ -1,7 +1,9 @@ --- layout: page title: Page Not Found +sitemap: false --- + > 🧹 **Oops! This page has been swept away.** > > Like your browser cache, your cookies, and your deepest secrets—this page no longer exists. diff --git a/Gemfile b/Gemfile index ef756b9..0007cde 100644 --- a/Gemfile +++ b/Gemfile @@ -1,10 +1,9 @@ source "https://rubygems.org" -#https://talk.jekyllrb.com/t/liquid-4-0-3-tainted/7946/12 - -gem 'liquid', '>= 4.0', '< 6.0' -gem 'jekyll', '>= 4.3.2' -gem 'jekyll-redirect-from' - - - +gem 'jekyll', '~> 4.4.1' +gem 'jekyll-last-modified-at', '~> 1.3.2' +gem 'jekyll-redirect-from', '~> 0.16.0' +gem 'jekyll-seo-tag', '~> 2.9.0' +gem 'jekyll-sitemap', '~> 1.4.0' +gem 'tzinfo-data', :install_if => Gem.win_platform? +gem 'wdm', '~> 0.2.0', :install_if => Gem.win_platform? diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 0000000..7bbe733 --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,155 @@ +GEM + remote: https://rubygems.org/ + specs: + addressable (2.9.0) + public_suffix (>= 2.0.2, < 8.0) + base64 (0.3.0) + bigdecimal (4.1.2) + colorator (1.1.0) + concurrent-ruby (1.3.8) + csv (3.3.6) + em-websocket (0.5.3) + eventmachine (>= 0.12.9) + http_parser.rb (~> 0) + eventmachine (1.2.7) + ffi (1.17.4-x64-mingw-ucrt) + ffi (1.17.4-x86_64-linux-gnu) + forwardable-extended (2.6.0) + google-protobuf (4.36.0-x64-mingw-ucrt) + bigdecimal + rake (~> 13.3) + google-protobuf (4.36.0-x86_64-linux-gnu) + bigdecimal + rake (~> 13.3) + http_parser.rb (0.8.1) + i18n (1.15.2) + concurrent-ruby (~> 1.0) + jekyll (4.4.1) + addressable (~> 2.4) + base64 (~> 0.2) + colorator (~> 1.0) + csv (~> 3.0) + em-websocket (~> 0.5) + i18n (~> 1.0) + jekyll-sass-converter (>= 2.0, < 4.0) + jekyll-watch (~> 2.0) + json (~> 2.6) + kramdown (~> 2.3, >= 2.3.1) + kramdown-parser-gfm (~> 1.0) + liquid (~> 4.0) + mercenary (~> 0.3, >= 0.3.6) + pathutil (~> 0.9) + rouge (>= 3.0, < 5.0) + safe_yaml (~> 1.0) + terminal-table (>= 1.8, < 4.0) + webrick (~> 1.7) + jekyll-last-modified-at (1.3.2) + jekyll (>= 3.7, < 5.0) + jekyll-redirect-from (0.16.0) + jekyll (>= 3.3, < 5.0) + jekyll-sass-converter (3.1.0) + sass-embedded (~> 1.75) + jekyll-seo-tag (2.9.0) + jekyll (>= 3.8, < 5.0) + jekyll-sitemap (1.4.0) + jekyll (>= 3.7, < 5.0) + jekyll-watch (2.2.1) + listen (~> 3.0) + json (2.21.2) + kramdown (2.5.2) + rexml (>= 3.4.4) + kramdown-parser-gfm (1.1.0) + kramdown (~> 2.0) + liquid (4.0.4) + listen (3.10.0) + logger + rb-fsevent (~> 0.10, >= 0.10.3) + rb-inotify (~> 0.9, >= 0.9.10) + logger (1.7.0) + mercenary (0.4.0) + pathutil (0.16.2) + forwardable-extended (~> 2.6) + public_suffix (7.0.5) + rake (13.4.2) + rb-fsevent (0.11.2) + rb-inotify (0.11.1) + ffi (~> 1.0) + rexml (3.4.4) + rouge (4.7.0) + safe_yaml (1.0.5) + sass-embedded (1.103.1-x64-mingw-ucrt) + google-protobuf (~> 4.31) + sass-embedded (1.103.1-x86_64-linux-gnu) + google-protobuf (~> 4.31) + terminal-table (3.0.2) + unicode-display_width (>= 1.1.1, < 3) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + tzinfo-data (1.2026.3) + tzinfo (>= 1.0.0) + unicode-display_width (2.6.0) + wdm (0.2.0) + webrick (1.9.2) + +PLATFORMS + x64-mingw-ucrt + x86_64-linux + +DEPENDENCIES + jekyll (~> 4.4.1) + jekyll-last-modified-at (~> 1.3.2) + jekyll-redirect-from (~> 0.16.0) + jekyll-seo-tag (~> 2.9.0) + jekyll-sitemap (~> 1.4.0) + tzinfo-data + wdm (~> 0.2.0) + +CHECKSUMS + addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af + base64 (0.3.0) sha256=27337aeabad6ffae05c265c450490628ef3ebd4b67be58257393227588f5a97b + bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + colorator (1.1.0) sha256=e2f85daf57af47d740db2a32191d1bdfb0f6503a0dfbc8327d0c9154d5ddfc38 + concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 + csv (3.3.6) sha256=aba61e7e507a66f03d45cb1f3c4b6359861c3504038b422962875dce099e4456 + em-websocket (0.5.3) sha256=f56a92bde4e6cb879256d58ee31f124181f68f8887bd14d53d5d9a292758c6a8 + eventmachine (1.2.7) sha256=994016e42aa041477ba9cff45cbe50de2047f25dd418eba003e84f0d16560972 + ffi (1.17.4-x64-mingw-ucrt) sha256=f6ff9618cfccc494138bddade27aa06c74c6c7bc367a1ea1103d80c2fcb9ed35 + ffi (1.17.4-x86_64-linux-gnu) sha256=9d3db14c2eae074b382fa9c083fe95aec6e0a1451da249eab096c34002bc752d + forwardable-extended (2.6.0) sha256=1bec948c469bbddfadeb3bd90eb8c85f6e627a412a3e852acfd7eaedbac3ec97 + google-protobuf (4.36.0-x64-mingw-ucrt) sha256=268789f35dc9ce14ae1ea463909d6399ed8cab8f21becd7d8dce20866090574d + google-protobuf (4.36.0-x86_64-linux-gnu) sha256=8c253f7cb7647cdf1f54fc3f215e151206b5159e03d74fe29b8599264903de2b + http_parser.rb (0.8.1) sha256=9ae8df145b39aa5398b2f90090d651c67bd8e2ebfe4507c966579f641e11097a + i18n (1.15.2) sha256=00f9eb62412fe593b2a65a97daa75300d37abb8f7202ec748e94b6d46a9dd1b5 + jekyll (4.4.1) sha256=4c1144d857a5b2b80d45b8cf5138289579a9f8136aadfa6dd684b31fe2bc18c1 + jekyll-last-modified-at (1.3.2) sha256=c4c08f137453e9b40764a769450870d05970e0934651a1fd9ef081f4a6e9a815 + jekyll-redirect-from (0.16.0) sha256=6635cae569ef9b0f90ffb71ec014ba977177fafb44d32a2b0526288d4d9be6db + jekyll-sass-converter (3.1.0) sha256=83925d84f1d134410c11d0c6643b0093e82e3a3cf127e90757a85294a3862443 + jekyll-seo-tag (2.9.0) sha256=0260015a8e1df9bf195cdfb0c675b7b2883fd8cbf12556e1c1cbe36a831c6852 + jekyll-sitemap (1.4.0) sha256=0de08c5debc185ea5a8f980e1025c7cd3f8e0c35c8b6ef592f15c46235cf4218 + jekyll-watch (2.2.1) sha256=bc44ed43f5e0a552836245a54dbff3ea7421ecc2856707e8a1ee203a8387a7e1 + json (2.21.2) sha256=1f1d3b7cf2b3ba1a69beca0bb6db13d5438b80bff3cd54cdaaa620b9b07c1c6a + kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa + kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 + liquid (4.0.4) sha256=4fcfebb1a045e47918388dbb7a0925e7c3893e58d2bd6c3b3c73ec17a2d8fdb3 + listen (3.10.0) sha256=c6e182db62143aeccc2e1960033bebe7445309c7272061979bb098d03760c9d2 + logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + mercenary (0.4.0) sha256=b25a1e4a59adca88665e08e24acf0af30da5b5d859f7d8f38fba52c28f405138 + pathutil (0.16.2) sha256=e43b74365631cab4f6d5e4228f812927efc9cb2c71e62976edcb252ee948d589 + public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 + rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 + rb-fsevent (0.11.2) sha256=43900b972e7301d6570f64b850a5aa67833ee7d87b458ee92805d56b7318aefe + rb-inotify (0.11.1) sha256=a0a700441239b0ff18eb65e3866236cd78613d6b9f78fea1f9ac47a85e47be6e + rexml (3.4.4) sha256=19e0a2c3425dfbf2d4fc1189747bdb2f849b6c5e74180401b15734bc97b5d142 + rouge (4.7.0) sha256=dba5896715c0325c362e895460a6d350803dbf6427454f49a47500f3193ea739 + safe_yaml (1.0.5) sha256=a6ac2d64b7eb027bdeeca1851fe7e7af0d668e133e8a88066a0c6f7087d9f848 + sass-embedded (1.103.1-x64-mingw-ucrt) sha256=1f6bc232d8d9f29b6e9923e8dbe8ef6a5da9b603c9d346307ef369bd2e84c251 + sass-embedded (1.103.1-x86_64-linux-gnu) sha256=1056cb8031fbceee992a3d07c39e9118864aa280e1ba03d85bc5397bd4479333 + terminal-table (3.0.2) sha256=f951b6af5f3e00203fb290a669e0a85c5dd5b051b3b023392ccfd67ba5abae91 + tzinfo (2.0.6) sha256=8daf828cc77bcf7d63b0e3bdb6caa47e2272dcfaf4fbfe46f8c3a9df087a829b + tzinfo-data (1.2026.3) sha256=478fbc5356f13c1004cf8372b1336f3dad4055c96340fc4c881a3738da8cf7f9 + unicode-display_width (2.6.0) sha256=12279874bba6d5e4d2728cef814b19197dbb10d7a7837a869bab65da943b7f5a + wdm (0.2.0) sha256=c46d9dcb6d375199ca07465bc67669ee8f041aeaa55dd7dafe6de4dd97b27647 + webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 + +BUNDLED WITH + 4.0.19 diff --git a/Makefile b/Makefile index 30c8a44..1b5caf8 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,6 @@ # Makefile for BleachBit documentation site - -.PHONY: help clean serve build install install-local update +.PHONY: help clean serve build install update # Default target help: @@ -11,22 +10,12 @@ help: @echo " serve - Start local development server" @echo " build - Build the static site" @echo " install - Install Ruby dependencies" - @echo " install-local - Install Ruby dependencies under vendor/bundle" @echo " update - Update Ruby dependencies" # Clean generated files and dependencies clean: @echo "Cleaning generated files..." - rm -rf _site/ - rm -rf .jekyll-cache/ - rm -rf _pages/ - @echo "Cleaning Ruby dependencies..." - rm -rf .bundle/ - rm -rf vendor/ - rm -f Gemfile.lock - @echo "Cleaning editor temporary files..." - find . -name "*.sw?" -delete - find . -name "*~" -delete + git clean -dfx @echo "Collecting garbage in git..." git gc @echo "Clean complete." @@ -35,21 +24,15 @@ clean: install: @echo "Installing Ruby dependencies..." bundle install - @echo "Dependencies installed." - -# Install Ruby dependencies locally (no global gems required) -install-local: - @echo "Configuring Bundler to install into vendor/bundle..." - bundle config set --local path 'vendor/bundle' - @echo "Installing Ruby dependencies locally..." - bundle install - @echo "Dependencies installed in vendor/bundle." + @echo "Dependencies installed" # Update Ruby dependencies update: @echo "Updating Ruby dependencies..." bundle update @echo "Dependencies updated." + @echo "Listing outdated dependencies..." + bundle outdated # Build the static site build: @@ -60,9 +43,9 @@ build: # Serve locally for development serve: @echo "Starting development server..." - bundle exec jekyll serve --watch --drafts + bundle exec jekyll serve --drafts # Serve locally without drafts (production-like) serve-prod: @echo "Starting production-like server..." - bundle exec jekyll serve --watch + bundle exec jekyll serve diff --git a/_config.yml b/_config.yml index f51708f..9febb81 100644 --- a/_config.yml +++ b/_config.yml @@ -1,6 +1,7 @@ # Site title and subtitle. This is used in _includes/header.html title: BleachBit Documentation #subtitle: 'Documentation for BleachBit' +url: "https://docs.bleachbit.org" # if you wish to integrate disqus on pages set your shortname here disqus_shortname: '' @@ -37,27 +38,35 @@ permalink: none # Syntax highlighting highlighter: rouge +encoding: "utf-8" +timezone: UTC +strict_front_matter: true + +liquid: + error_mode: warn + strict_filters: false + strict_variables: false + +# Sass +sass: + style: compressed + # Since these are pages, it doesn't really matter future: true # Exclude non-site files -exclude: ['bin', 'README.md'] +exclude: + - bin + - COPYING + - Makefile + - README.md # Use the kramdown Markdown renderer markdown: kramdown -redcarpet: - extensions: [ - 'no_intra_emphasis', - 'fenced_code_blocks', - 'autolink', - 'strikethrough', - 'superscript', - 'with_toc_data', - 'tables', - 'hardwrap' - ] - -# https://help.github.com/articles/redirects-on-github-pages/ + plugins: + - jekyll-last-modified-at + # https://help.github.com/articles/redirects-on-github-pages/ - jekyll-redirect-from - + - jekyll-seo-tag + - jekyll-sitemap diff --git a/_data/faqs.yml b/_data/faqs.yml index b66e380..4bcc7cf 100644 --- a/_data/faqs.yml +++ b/_data/faqs.yml @@ -1,291 +1,225 @@ main: - question: Why do I see permissions denied errors on Linux? - answer: 'If you are trying to clean the system (for example, localizations, APT, - or DNF), run BleachBit with root permissions. To elevate permissions, choose the - menu option "BleachBit as Administrator" _or_ run sudo on the command - line. - + answer: | + If you are trying to clean the system (for example, localizations, APT, or DNF), run + BleachBit with root permissions. To elevate permissions, choose the menu option "BleachBit + as Administrator" _or_ run `sudo` on the command line. Alternatively, when running as a normal user, uncheck options that require root - permissions.' + permissions. - question: Why do I see permission denied errors on Windows? - answer: 'This happens when cleaning certain files, such as Windows system logs under - ``c:\windows``. - - When you first launch BleachBit it should prompt you with the User Access Control - dialog, which asks, "Do you want to allow the following program to make changes - to this computer." Answer *Yes* to grant BleachBit the privileges to modify all - files. + answer: | + This happens when cleaning certain files, such as Windows system logs under `c:\windows`. + When you first launch BleachBit it should prompt you with the User Access Control dialog, + which asks, "Do you want to allow the following program to make changes to this computer." + Answer *Yes* to grant BleachBit the privileges to modify all files. - If you answer *No*, then BleachBit will start, and it will still be able to clean - data under your user profile. However, it will not have access to clean system - data.' + If you answer *No*, then BleachBit will start, and it will still be able to clean data + under your user profile. However, it will not have access to clean system data. - question: On Linux do I need to run BleachBit both as a normal user and as an administrator? - answer: 'It depends how your system elevates privileges. Linux has various tools - (for example, kdesudo, gksudo sudo, su-to-root, and PolicyKit) with various options - to elevate to root (administrator) privileges, and they create two different situations. - - - In the first case, they switch the user to the root account, so BleachBit cleans - the root account and not the non-privileged account. For example, BleachBit will - clean root''s web browsers, which are probably never used, so it may seem BleachBit - is not finding the files you expect. In this case, use the Bleachbit as Administrator - option to clean any system files that require special privileges, and then use - regular BleachBit to clean files in your personal profile. - - - In the second case, BleachBit runs with elevated privileges in the context of - the non-privileged account, so all options can cleaned from one session. - - - To check which case applies to you, start BleachBit as Administrator, click on - Help - System Information, and look at the value for ```os.path.expanduser(''~'')```. - If it equals ```/root```, then the first case is happening, so run BleachBit both - as administrator and as a regular user to clean all files. - - - Another way to check is first to run BleachBit as administrator. Then run BleachBit - as a regular user, and if the preview shows any files, then you may need to run - BleachBit as a regular user.' + answer: | + It depends how your system elevates privileges. Linux has various tools (for example, + kdesudo, gksudo sudo, su-to-root, and PolicyKit) with various options to elevate to root + (administrator) privileges, and they create two different situations. + + In the first case, they switch the user to the root account, so BleachBit cleans the root + account and not the non-privileged account. For example, BleachBit will clean root's web + browsers, which are probably never used, so it may seem BleachBit is not finding the files + you expect. In this case, use the Bleachbit as Administrator option to clean any system + files that require special privileges, and then use regular BleachBit to clean files in + your personal profile. + + In the second case, BleachBit runs with elevated privileges in the context of the + non-privileged account, so all options can cleaned from one session. + + To check which case applies to you, start BleachBit as Administrator, click on Help - + System Information, and look at the value for `os.path.expanduser('~')`. If it equals + `/root`, then the first case is happening, so run BleachBit both as administrator and as a + regular user to clean all files. + + Another way to check is first to run BleachBit as administrator. Then run BleachBit as a + regular user, and if the preview shows any files, then you may need to run BleachBit as a + regular user. - question: How to run the GUI as root on Linux under Wayland? - answer: 'As the unprivileged user, run this command to allow the local user''s X - session: - - - ```xhost si:localuser:root``` + answer: | + As the unprivileged user, run this command to allow the local user's X session: + ```text + xhost si:localuser:root + ``` When finished, disable the access: - - ```xhost -si:localuser:root``` - + ```text + xhost -si:localuser:root + ``` Avoid running GUI applications as root. - - Source: [[ArchWiki]](https://wiki.archlinux.org/title/Running_GUI_applications_as_root)' + Source: [[ArchWiki]](https://wiki.archlinux.org/title/Running_GUI_applications_as_root) - question: How do I recover a file deleted by BleachBit? - answer: '"I had BleachBit delete data, but now I want it back. Is there an undo - command?" - - The success of recovery depends on whether the file was overwritten, and the ease - of recovery depends on whether the metadata was overwritten. If in the preferences - the option "Overwrite files to prevent recovery" was enabled, the file probably - cannot be recovered. There is an exception if the file system is ext3 or ext4 - in `data=journal` mode. The default file system on Ubuntu is ext4 with `data=ordered` - mode, which makes recovery unlikely. - - If the *wipe empty space* (formerly *wipe free space*) command was used on the same file system, the file probably - cannot be deleted regardless of the type of file system. See also [Shred files - and wipe disks](/doc/shred-files-and-wipe-disks.html) for more information. - - The chances of recovery decline as data is written to the drive and as time passes. - - Immediately the file is deleted in a normal way (in other words, if it is not - overwritten), the full contents still exist and full recovery is stil possible. - To maximize the chance of recovery, avoid writing any data to the file system. - This step is most important when there is little free space. Often the file system - for which recovery is desired is also the primary file system, so the computer - should be turned off and rebooted into a bootable operating system from a bootable - CD or USB drive. - + answer: | + "I had BleachBit delete data, but now I want it back. Is there an undo command?" The + success of recovery depends on whether the file was overwritten, and the ease of recovery + depends on whether the metadata was overwritten. If in the preferences the option + "Overwrite files to prevent recovery" was enabled, the file probably cannot be recovered. + There is an exception if the file system is ext3 or ext4 in `data=journal` mode. The + default file system on Ubuntu is ext4 with `data=ordered` mode, which makes recovery + unlikely. If the *wipe empty space* (formerly *wipe free space*) command was used on the + same file system, the file probably cannot be deleted regardless of the type of file + system. See also [Shred files and wipe disks](/doc/shred-files-and-wipe-disks.html) for + more information. The chances of recovery decline as data is written to the drive and as + time passes. Immediately the file is deleted in a normal way (in other words, if it is not + overwritten), the full contents still exist and full recovery is stil possible. To + maximize the chance of recovery, avoid writing any data to the file system. This step is + most important when there is little free space. Often the file system for which recovery + is desired is also the primary file system, so the computer should be turned off and + rebooted into a bootable operating system from a bootable CD or USB drive. Finally, run a file recovery tool. Do a search on the web for "undelete" or "file - recovery."' + recovery." - question: Why does BleachBit take a long time while filling up the hard drive? - answer: 'Check under the System cleaner whether the option **Free disk space** - - (version 5.0.2 and prior) or **Empty Space** (version 5.1.0 and later) is enabled. - - The purpose is not to increase the amount of available space. Instead, its purpose - - is to make previously deleted files unrecoverable. - + answer: | + Check under the System cleaner whether the option **Free disk space** (version 5.0.2 and + prior) or **Empty Space** (version 5.1.0 and later) is enabled. The purpose is not to + increase the amount of available space. Instead, its purpose is to make previously deleted + files unrecoverable. - This feature works by creating large, empty files (see [Shred files and wipe disks](/doc/shred-files-and-wipe-disks.html) + This feature works by creating large, empty files (see [Shred files and wipe + disks](/doc/shred-files-and-wipe-disks.html) for more information). The duration to wipe + empty space depends on the speed of the hardware and the free capacity, and it commonly + takes more than five minutes. - for more information). The duration to wipe empty space depends on the speed of - the - - hardware and the free capacity, and it commonly takes more than five minutes. - - - When the hard drive is full, BleachBit immediately deletes the file, and there - will - - be no net change in disk space. - - - Wiping empty space is not necessary if your drive is protected with full-disk - encryption + When the hard drive is full, BleachBit immediately deletes the file, and there will be no + net change in disk space. + Wiping empty space is not necessary if your drive is protected with full-disk encryption such as BitLocker or LUKS. Wiping works best on traditional hard drives. On solid-state - drives, it is less reliable, and frequent use contributes to wear. - If wiping empty space is disabled, but BleachBit is still slow, look at the option + **Edit - Preferences - General - Overwrite Contents**. Enabling this option makes BleachBit + slower because more work is required to make files unrecoverable. +- question: I closed BleachBit while it was working for a long time, and now my hard drive is full. How do I fix it? + answer: | + Run BleachBit, and clean the option **System - Temporary Files**. On Linux, also clean + **System - Cache**. This will delete one or more files that are gigantic and have random + filenames. - **Edit - Preferences - General - Overwrite Contents**. Enabling this option makes - BleachBit + In case you are using the command line or another application to delete these files, the + default location on Linux is `~/.cache/`. If it is not the same partition, `/tmp/` is also + used. On Windows, the default locations are `%TMP%`. If there are other fixed drives such + as `D:`, they are also used. - slower because more work is required to make files unrecoverable.' -- question: I closed BleachBit while it was working for a long time, and now my hard - drive is full. How do I fix it? - answer: 'Run BleachBit, and clean the option **System - Temporary Files**. On Linux, - also clean **System - Cache**. This will delete one or more files that are gigantic - and have random filenames. - - - In case you are using the command line or another application to delete these - files, the default location on Linux is `~/.cache/`. If it is not the same partition, - `/tmp/` is also used. On Windows, the default locations are `%TMP%`. If there - are other fixed drives such as `D:`, they are also used. - - - If you changed the default options under **Preferences - Drives**, look there - for the large files. - - - If you cannot boot Ubuntu because the disk is full, use the [Ubuntu Recovery Mode](https://wiki.ubuntu.com/RecoveryMode) - like this: + If you changed the default options under **Preferences - Drives**, look there for the + large files. + If you cannot boot Ubuntu because the disk is full, use the [Ubuntu Recovery + Mode](https://wiki.ubuntu.com/RecoveryMode) like this: 1. Reboot the system. - 1. Choose the boot option *Advanced options for Ubuntu*. - 1. Choose a recent kernel with *(recovery mode)*. - 1. In the Recovery Menu, choose _clean_. Note: this will mount your filesystem. - - 1. If this cleans enough space, boot normally and then clean the cache as mentioned - above. - + 1. If this cleans enough space, boot normally and then clean the cache as mentioned above. 1. Otherwise, choose _root_ from the Recovery Menu. - - 1. Type this command to switch to your normal user account: su username - -. (Replace _username_ with your username.) - - 1. Run this command to clean the user''s cache: `rm -rf ~/.cache/`. - + 1. Type this command to switch to your normal user account: `su username -`. (Replace _username_ with your username.) + 1. Run this command to clean the user's cache: `rm -rf ~/.cache/`. 1. Reboot. - - In the future, you may avoid this situation by disabling the BleachBit option - **System - Free Disk Space**. Otherwise, do not interrupt BleachBit while it is - working.' -- question: How many passes does BleachBit make for the overwrite file option (shredding - file)? + In the future, you may avoid this situation by disabling the BleachBit option **System - + Free Disk Space**. Otherwise, do not interrupt BleachBit while it is working. +- question: How many passes does BleachBit make for the overwrite file option (shredding file)? answer: See [Shred files and wipe disks](/doc/shred-files-and-wipe-disks.html). - question: How do I see BleachBit in my own language on Microsoft Windows? - answer: 'There are a few ways to affect the language of the BleachBit user interface. - - - In the Windows search bar, type "Language settings" and open it. Under the Windows - display language, choose the preferred language, and then restart BleachBit. + answer: | + There are a few ways to affect the language of the BleachBit user interface. + In the Windows search bar, type "Language settings" and open it. Under the Windows display + language, choose the preferred language, and then restart BleachBit. To force BleachBit to always show in English, you have a few options: - * Download and install the English installer instead of the regular installer. - - * If using the regular (non-English-only) installer, uncheck the option to install - translations. - - * Manually delete the translations. The default location for translations is `c:\Program - Files (x86)\BleachBit\share\locale`. - + * If using the regular (non-English-only) installer, uncheck the option to install translations. + * Manually delete the translations. The default location for translations is `c:\Program Files (x86)\BleachBit\share\locale`. The language chosen in the BleachBit installer does not affect the BleachBit application: it affects only the language of the installer. - - Since [BleachBit 4.9.0 alpha](https://www.bleachbit.org/news/bleachbit-490-alpha), - there is an option in the BleachBit preferences to change the language ([video + Since [BleachBit 4.9.0 alpha](https://www.bleachbit.org/news/bleachbit-490-alpha), there + is an option in the BleachBit preferences to change the language ([video demonstration](https://github.com/bleachbit/bleachbit/issues/1758#issuecomment-2603127349)). - Most changes take effect immediately. To reflect changes for the application menu, - restart the application.' + Most changes take effect immediately. To reflect changes for the application menu, restart + the application. things_to_know: - question: What is format for the versioning number system? - answer: 'Since BleachBit version 1.0 the numbering system is like that of GNOME, - Linux between 1.0 and 2.6, and other projects: the format is basically *a.b*. - When *b* is odd like 1.1, it is an unstable release (alpha or beta), and when - *b* is even like 1.2, it is a stable release. Also, *b* can be greater than 9, - so version 1.10 is newer than version 1.8.' + answer: | + Since BleachBit version 1.0 the numbering system is like that of GNOME, Linux between 1.0 + and 2.6, and other projects: the format is basically *a.b*. When *b* is odd like 1.1, it + is an unstable release (alpha or beta), and when *b* is even like 1.2, it is a stable + release. Also, *b* can be greater than 9, so version 1.10 is newer than version 1.8. - question: Should I delete cache? - answer: 'Cache generally improves the performance of your computer. For example, - browser cache prevents many files (such as pieces of web pages) from being downloaded - again. Getting the file from the cache is much faster than downloading it—even - with fast bandwidth. Applications (such as web browsers) normally delete the useless - parts of cache to prevent it from growing too large and to make room for new, - potentially-useful data. - - - Yet, cache contains content you have viewed and can be used to reconstruct some - of your browsing history. Especially for applications that you deleted, some cache - is never used, so the space is wasted. Finally, deleting a large cache saves time - and storage space before making a backup.' + answer: | + Cache generally improves the performance of your computer. For example, browser cache + prevents many files (such as pieces of web pages) from being downloaded again. Getting the + file from the cache is much faster than downloading it—even with fast bandwidth. + Applications (such as web browsers) normally delete the useless parts of cache to prevent + it from growing too large and to make room for new, potentially-useful data. + + Yet, cache contains content you have viewed and can be used to reconstruct some of your + browsing history. Especially for applications that you deleted, some cache is never used, + so the space is wasted. Finally, deleting a large cache saves time and storage space + before making a backup. - question: Should I delete cookies? - answer: 'Cookies are not inherently evil or dangerous. The following statements - are *false*: - - - * Cookies have no uses besides advertising - - * Cookies can infect a computer like a virus - - * Cookies cause popup ads - - * Cookies can read arbitrary information from your computer (such as your name, - your credit card, or private documents) - - - Cookies perform useful functions such as maintaining your login information: this - saves you the time of logging in again. Many web sites use cookies to make honest - improvements such as simplifying confusing navigation. Cookies rarely contain - personally identifiable information (such as a name or email address). With a - high degree of success (but a greater hassle for the web operator), web sites - can still track visitors who have cookies disabled (using unique information such - as IP address, user agent, plugins, etc), so disabling cookies may not have the - intended effect. - - - On the other hand, some web sites use tricks (e.g., "evercookie" technology) to - resurrect deleted cookies and try to track users between browsers on the same - computer. Using another trick, cookies can track visitors between web sites for - behavioural ad targeting: for example, once you visited an online camping store, - and suddenly every other web site shows you ads for that camping store.' + answer: | + Cookies are not inherently evil or dangerous. The following statements are *false*: + + * Cookies have no uses besides advertising + * Cookies can infect a computer like a virus + * Cookies cause popup ads + * Cookies can read arbitrary information from your computer (such as your name, your credit card, or private documents) + + Cookies perform useful functions such as maintaining your login information: this saves + you the time of logging in again. Many web sites use cookies to make honest improvements + such as simplifying confusing navigation. Cookies rarely contain personally identifiable + information (such as a name or email address). With a high degree of success (but a + greater hassle for the web operator), web sites can still track visitors who have cookies + disabled (using unique information such as IP address, user agent, plugins, etc), so + disabling cookies may not have the intended effect. + + On the other hand, some web sites use tricks (e.g., "evercookie" technology) to resurrect + deleted cookies and try to track users between browsers on the same computer. Using + another trick, cookies can track visitors between web sites for behavioural ad targeting: + for example, once you visited an online camping store, and suddenly every other web site + shows you ads for that camping store. - question: Is BleachBit "safe"? - answer: BleachBit identifies and organizes the files you are most likely want to - delete. For a few options which are most likely to cause you regret, it shows - a popup warning. In that sense, BleachBit is much safer for a novice computer - user than poking through the random directories hunting for files to delete. On - the other hand, if the saying "One man's trash is another man's treasure" were - not true or the saying "one size fits all" applied here, BleachBit would have - no options. Carefully read the descriptions and warnings, and do not choose any - options you do not understand or which make you uncomfortable. + answer: | + BleachBit identifies and organizes the files you are most likely want to delete. For a few + options which are most likely to cause you regret, it shows a popup warning. In that + sense, BleachBit is much safer for a novice computer user than poking through the random + directories hunting for files to delete. On the other hand, if the saying "One man's trash + is another man's treasure" were not true or the saying "one size fits all" applied here, + BleachBit would have no options. Carefully read the descriptions and warnings, and do not + choose any options you do not understand or which make you uncomfortable. - question: Will BleachBit make my computer faster? - answer: 'BleachBit probably will not make your computer faster in general, but there - are two specific ways you may see your computer become faster. First, by removing - excess files, you may see an improvement in the speed of virus scanning and for - disk backups. Second, vacuuming SQLite databases speed up applications that use - them. Firefox, Safari, and Google Chrome are some applications that stores various - data, such as URL history, in an SQLite database. With heavy browsing, the databases - become fragmented and bloated, and this happens at a level higher than the disk - storage, so standard disk defragmentation tools are completely useless. BleachBit - shrinks the SQLite database (saving disk space and disk I/O effort) and defragments - them. You are most likely to see a dramatic benefit by not vacuuming for a while, - using the application heavily, and then vacuuming it once, but to keep the application - running quickly, vacuum often. Vacuuming is not a single solution to all performance - problems, but it does complement other solutions. People buy faster computers - with better CPUs and more RAM, but hard drive technology (other than the rare - SSDs) has not become much faster than they were years ago. The hard disk is often - the bottleneck, and vacuuming is one way to overcome this limitation. - + answer: | + BleachBit probably will not make your computer faster in general, but there are two + specific ways you may see your computer become faster. First, by removing excess files, + you may see an improvement in the speed of virus scanning and for disk backups. Second, + vacuuming SQLite databases speed up applications that use them. Firefox, Safari, and + Google Chrome are some applications that stores various data, such as URL history, in an + SQLite database. With heavy browsing, the databases become fragmented and bloated, and + this happens at a level higher than the disk storage, so standard disk defragmentation + tools are completely useless. BleachBit shrinks the SQLite database (saving disk space and + disk I/O effort) and defragments them. You are most likely to see a dramatic benefit by + not vacuuming for a while, using the application heavily, and then vacuuming it once, but + to keep the application running quickly, vacuum often. Vacuuming is not a single solution + to all performance problems, but it does complement other solutions. People buy faster + computers with better CPUs and more RAM, but hard drive technology (other than the rare + SSDs) has not become much faster than they were years ago. The hard disk is often the + bottleneck, and vacuuming is one way to overcome this limitation. Yet, deleting cache may make your computer slower because data will have to be - re-downloaded or re-generated.' + re-downloaded or re-generated. diff --git a/_includes/faqs.html b/_includes/faqs.html index 73243f7..befd428 100644 --- a/_includes/faqs.html +++ b/_includes/faqs.html @@ -1,59 +1,10 @@ -{% assign faqs = include.faqs | default: page.faqs %} -{% if include.heading != nil %} - {% assign heading = include.heading %} -{% else %} - {% assign heading = page.faq_heading %} - {% if heading == nil %} - {% assign heading = "Frequently Asked Questions" %} - {% endif %} -{% endif %} -{% if heading == false or heading == 'false' %} - {% assign heading = nil %} -{% endif %} -{% assign render_content = include.render_content %} -{% if render_content == nil %} - {% assign render_content = true %} -{% elsif render_content == false or render_content == 'false' %} - {% assign render_content = false %} -{% else %} - {% assign render_content = true %} -{% endif %} -{% assign render_schema = include.schema %} -{% if render_schema == nil %} - {% assign render_schema = true %} -{% elsif render_schema == false or render_schema == 'false' %} - {% assign render_schema = false %} -{% else %} - {% assign render_schema = true %} -{% endif %} -{% if faqs and faqs.size > 0 %} -{% if render_content %} -{% if heading %}