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 %}

{{ heading }}

{% endif %} +{%- assign faqs = include.faqs | default: page.faqs -%} +{%- if faqs.size > 0 %} +{% if include.heading %}

{{ include.heading | markdownify }}

{% endif %}
{% for faq in faqs %} -
{{ faq.question }}
+
{{ faq.question | markdownify }}
{{ faq.answer | markdownify }}
{% endfor %}
{% endif %} -{% if render_schema %} - -{% endif %} -{% endif %} diff --git a/_layouts/default.html b/_layouts/default.html index 6f681eb..6110299 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -4,14 +4,12 @@ - {{ site.title }}{% if page.title %} : {{ page.title }}{% endif %} - + {% if site.subtitle %}{% endif %} - - + {% seo %}
diff --git a/_layouts/page.html b/_layouts/page.html index b97ea6c..6d5fdc1 100644 --- a/_layouts/page.html +++ b/_layouts/page.html @@ -10,6 +10,4 @@

{{ page.title }}

{{ content }} -{% if page.faqs %} - {% include faqs.html %} -{% endif %} +{% include faqs.html heading="Frequently Asked Questions" %} diff --git a/_posts/.gitkeep b/_posts/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/_posts/2015-09-25-cleanerml.md b/_posts/2015-09-25-cleanerml.md index 0a06d9f..79c6f55 100644 --- a/_posts/2015-09-25-cleanerml.md +++ b/_posts/2015-09-25-cleanerml.md @@ -4,8 +4,7 @@ title: "CleanerML introduction" subtitle: "Write custom BleachBit cleaners" nav_title: "CleanerML Intro" category: cml -date: 2000-01-01 00:01:00 -# The date is set to an old date to keep this article first in its section. +date: 2015-09-25 00:01:00 redirect_from: - doc/cleanerml order: 1 @@ -30,14 +29,14 @@ You can think of it as writing XML to delete files, but it is more powerful than During application startup, BleachBit looks for CleanerML files in a few standard locations: -* `/usr/share/bleachbit/cleaners/` on Linux -* `~/.config/bleachbit/cleaners/` on Linux -* `share/cleaners/` relative to the Python script on Linux (useful for running BleachBit from source without installation -* `share\cleaners\` relative to the BleachBit executable on Windows which typically translates to ```c:\program files\bleachbit\share\cleaners``` +* `/usr/share/bleachbit/cleaners/` on Linux +* `~/.config/bleachbit/cleaners/` on Linux +* `share/cleaners/` relative to the Python script on Linux (useful for running BleachBit from source without installation +* `share\cleaners\` relative to the BleachBit executable on Windows which typically translates to `c:\program files\bleachbit\share\cleaners` Warning: This directory is deleted when BleachBit is updated or uninstalled. -* `%APPDATA%\BleachBit\cleaners\` on Windows which typically translates to `C:\Users\(username)\AppData\Roaming\BleachBit\Cleaners\` +* `%APPDATA%\BleachBit\cleaners\` on Windows which typically translates to `C:\Users\(username)\AppData\Roaming\BleachBit\Cleaners\` -Most of these locations are also scanned for [winapp2.ini](/doc/winapp2ini.html) files, but you may only use one winapp2.ini file. +Most of these locations are also scanned for [winapp2.ini]({% link _posts/2015-09-25-winapp2ini.md %}) files, but you may only use one winapp2.ini file. The diagnostics section of the application lists these directories. @@ -46,25 +45,25 @@ The diagnostics section of the application lists these directories. To learn CleanerML so you can write your own cleaner, read these resources: -* [Example cleaner](https://github.com/bleachbit/bleachbit/blob/master/doc/example_cleaner.xml) with many annotations -* [Cleaners that come standard with BleachBit](https://github.com/bleachbit/bleachbit/tree/master/cleaners) -* [Bonus cleaners](https://github.com/bleachbit/cleanerml) -* [XSD (XML Schema Definition)](https://github.com/bleachbit/bleachbit/blob/master/doc/cleaner_markup_language.xsd) used for validation +* [Example cleaner](https://github.com/bleachbit/bleachbit/blob/master/doc/example_cleaner.xml) with many annotations +* [Cleaners that come standard with BleachBit](https://github.com/bleachbit/bleachbit/tree/master/cleaners) +* [Bonus cleaners](https://github.com/bleachbit/cleanerml) +* [XSD (XML Schema Definition)](https://github.com/bleachbit/bleachbit/blob/master/doc/cleaner_markup_language.xsd) used for validation ## Finding files to delete -See [Finding files to delete](/cml/finding-files-to-delete.html). +See [Finding files to delete]({% link _posts/2026-02-10-finding-files-to-delete.md %}). ## Matching files CleanerML allows several ways to match files: -* **file**: matches a single file. -* **glob**: matches one or more files with a simple pattern. See the Python documentation on [glob](https://docs.python.org/2/library/glob.html). -* **walk.files**: matches all files under a directory (but does not match directories). -* **walk.all**: matches all files and directories under a directory (but not the top directory). -* **walk.top**: matches all contents of a directory and the top directory itself. -* **deep**: queues a deep scan +* **file**: matches a single file. +* **glob**: matches one or more files with a simple pattern. See the Python documentation on [glob](https://docs.python.org/2/library/glob.html). +* **walk.files**: matches all files under a directory (but does not match directories). +* **walk.all**: matches all files and directories under a directory (but not the top directory). +* **walk.top**: matches all contents of a directory and the top directory itself. +* **deep**: queues a deep scan What is the difference between a **deep** and **walk.files**? Deep scan expects file matches to be loosely scattered (such as Thumbs.db), but **walk.files** expects to match most files under that directory (such as Firefox's cache). To improve performance, BleachBit combines deep scans for the same directory (such as all deep scans for $HOME). In the future, BleachBit may allow the user to reconfigure the deep scan directory, so, for example, he can scan a network drive in addition to his home directory. @@ -140,11 +139,11 @@ Set the *running* element to abort cleaning when an application is running. It a ## Variables BleachBit supports expansion of a variety of variables: tilde (home), environment variables, and -multi-value variables. For more information, see [Variables](/cml/variables.html). +multi-value variables. For more information, see [Variables]({% link _posts/2019-04-19-variables.md %}). ## Sharing your cleaner -Of course, you may use your cleaner privately. If you wish to share it with others, see [Contribute Cleaner](/cml/contributing.html). +Of course, you may use your cleaner privately. If you wish to share it with others, see [Contribute Cleaner]({% link _posts/2019-04-19-contributing.md %}). diff --git a/_posts/2015-09-25-command-line-interface.md b/_posts/2015-09-25-command-line-interface.md index b1999dc..8e34343 100644 --- a/_posts/2015-09-25-command-line-interface.md +++ b/_posts/2015-09-25-command-line-interface.md @@ -10,8 +10,8 @@ order: 4 Most anything you can do with the graphical user interface, you can do with BleachBit's command line interface which serves two needs: -* Automating cleaning in scripts, batch files, and scheduled tasks -* Running BleachBit headless in terminal-only connections. +* Automating cleaning in scripts, batch files, and scheduled tasks +* Running BleachBit headless in terminal-only connections. This page includes some examples. @@ -47,7 +47,7 @@ An alias is `--p`. ## Deleting files -When you are ready to delete files and make other permanent changes, replace ```--preview``` with ```--clean```. To delete Firefox cache, for example, run: +When you are ready to delete files and make other permanent changes, replace `--preview` with `--clean`. To delete Firefox cache, for example, run: `bleachbit --clean firefox.vacuum` @@ -67,23 +67,23 @@ Wildcards are allowed for options, so to preview deleting all options for Opera, Wildcards are not allowed for cleaners, so do _not_ run `bleachbit --preview *.*`. -To select the same options as in the GUI, use ```--preset```, which may be combined with other options: +To select the same options as in the GUI, use `--preset`, which may be combined with other options: `bleachbit --preview --preset firefox.cache` -To enable all cleaners and options that do not have a warning, use ```--all-but-warning```, which may be combined with other options. Use this with caution, as it will delete many files. +To enable all cleaners and options that do not have a warning, use `--all-but-warning`, which may be combined with other options. Use this with caution, as it will delete many files. `bleachbit --preview --all-but-warning firefox.cache` ## Excluding options -To except cleaning options, combine ```--except``` with inclusion options. The following previews all of Firefox except cookies. +To except cleaning options, combine `--except` with inclusion options. The following previews all of Firefox except cookies. `bleachbit --preview firefox.* --except firefox.cookies` These three commands are equivalent: they include all Firefox and Chromium options except their passwords. The first option demonstrates that `--except` accepts multiple cleaner options, separated by commas. -``` +```text bleachbit --clean firefox.* chromium.* --except firefox.passwords,chromium.passwords bleachbit --clean firefox.* chromium.* --except firefox.passwords --except chromium.passwords bleachbit --clean chromium.* --except firefox.passwords firefox.* --except chromium.passwords @@ -105,11 +105,11 @@ Notes: ## Overwriting files -To overwrite the contents of files, so they cannot be undeleted later, add ```--overwrite```: +To overwrite the contents of files, so they cannot be undeleted later, add `--overwrite`: `bleachbit --overwrite --clean firefox.vacuum` -Without ```--overwrite```, BleachBit checks the configuration set in the graphical user interface. +Without `--overwrite`, BleachBit checks the configuration set in the graphical user interface. ## Shredding files @@ -124,7 +124,7 @@ To shred all files under a directory, pass the name of the directory like this: ## Wiping empty space -When files are [deleted without shredding](shred-files-and-wipe-disks.html), the contents might be recoverable from the disk's empty space. To prevent recovery from empty space, you can wipe the empty space. Unlike wiping specific files, wiping empty space takes a long time. +When files are [deleted without shredding]({% link _posts/2015-09-25-shred-files-and-wipe-disks.md %}), the contents might be recoverable from the disk's empty space. To prevent recovery from empty space, you can wipe the empty space. Unlike wiping specific files, wiping empty space takes a long time. You might want to wipe empty space for each logical drive. For example, on Windows you might wipe `C:` and `D:`, if you write sensitive files to both. On Linux, you might want to wipe `/` and `/home` if they are separate partitions and if you write sensitive information to both. @@ -151,18 +151,16 @@ and add this line: To vacuum Firefox each night at 03:00: -* Open the Control Panel. -* Open Scheduled Tasks. -* Click **Add Scheduled Task**. -* Click **Next**. -* Click **Browse**. -* Choose ```C:\Program Files (x86)\BleachBit\bleachbit_console.exe```. -* Choose **Daily**. -* Set the start time. -* Click **Next**. -* Click **Next**. -* Check **Advanced Properties**. -* At the end of **Run**, add --clean firefox.vacuum. -* Click **OK**. - - +* Open the Control Panel. +* Open Scheduled Tasks. +* Click **Add Scheduled Task**. +* Click **Next**. +* Click **Browse**. +* Choose `C:\Program Files (x86)\BleachBit\bleachbit_console.exe`. +* Choose **Daily**. +* Set the start time. +* Click **Next**. +* Click **Next**. +* Check **Advanced Properties**. +* At the end of **Run**, add `--clean firefox.vacuum`. +* Click **OK**. diff --git a/_posts/2015-09-25-frequently-asked-questions.md b/_posts/2015-09-25-frequently-asked-questions.md index 71765dd..027d630 100644 --- a/_posts/2015-09-25-frequently-asked-questions.md +++ b/_posts/2015-09-25-frequently-asked-questions.md @@ -3,19 +3,16 @@ layout: page title: "Frequently asked questions" nav_title: "FAQ" category: doc -date: 2000-01-25 23:30:16 +date: 2015-09-25 23:30:16 order: 5 --- {% assign main_faqs = site.data.faqs.main %} -{% include faqs.html faqs=main_faqs heading="Frequently Asked Questions" schema=false %} +{% include faqs.html faqs=main_faqs heading="Frequently Asked Questions" %} ## Things to know While these may not be asked, they are not common knowledge: {% assign extra_faqs = site.data.faqs.things_to_know %} -{% include faqs.html faqs=extra_faqs heading=false schema=false %} - -{% assign all_faqs = main_faqs | concat: extra_faqs %} -{% include faqs.html faqs=all_faqs render_content=false %} +{% include faqs.html faqs=extra_faqs %} diff --git a/_posts/2015-09-25-preferences.md b/_posts/2015-09-25-preferences.md index eae681d..5006eb2 100644 --- a/_posts/2015-09-25-preferences.md +++ b/_posts/2015-09-25-preferences.md @@ -56,7 +56,7 @@ When enabled, both the GUI and the console will show technical messages that som ### Expert mode For advanced users who want direct control over cleaning operations -and confirmation dialogs, see [Expert mode](/doc/expert-mode.html). +and confirmation dialogs, see [Expert mode]({% link _posts/2026-04-29-expert-mode.md %}). ### Custom @@ -66,7 +66,7 @@ In the custom tab, choose a file or folder to delete. It will be deleted only wh Before using the **Free disk space** option under **System**, select a writable directory for each drive (also called logical partition or mount point). The unallocated disk space in the chosen drives will be wiped. -When starting for the first time, BleachBit tries to guess the correct value. In Linux, a good setting is typically /home/(username) and /tmp, but only one should be used if both are on the same partition. In Windows, typically C:\\ is a good choice. +When starting for the first time, BleachBit tries to guess the correct value. In Linux, a good setting is typically `/home/(username)` and `/tmp`, but only one should be used if both are on the same partition. In Windows, typically `C:\` is a good choice. ### Languages diff --git a/_posts/2015-09-25-running-from-source-code.md b/_posts/2015-09-25-running-from-source-code.md index 829eb16..415c27a 100644 --- a/_posts/2015-09-25-running-from-source-code.md +++ b/_posts/2015-09-25-running-from-source-code.md @@ -60,7 +60,7 @@ To get the source code, either download the latest tarball (.tar.bz2) or checkou On Linux unpack a tarball run these commands: -```terminal +```sh tar xvjf bleachbit-5.0.2.tar.bz2 cd bleachbit-5.0.2 ``` @@ -71,39 +71,39 @@ On Windows unpack the tarball with [7-Zip](http://www.7-zip.org/) or similar app On Linux, install the Git client. On Debian and Ubuntu install it with this command: -```terminal +```sh sudo apt-get install git ``` Similarly, on Fedora, Red Hat, and CentOS install the Git client with this command: -```terminal +```sh sudo yum install git-core ``` On Linux clone the Git repository for the BleachBit application with this command: -```terminal +```sh git clone https://github.com/bleachbit/bleachbit.git ``` Here is a full list of BleachBit Git repositories: -* [BleachBit](https://github.com/bleachbit/bleachbit): main BleachBit application -* [pygtkwin](https://github.com/bleachbit/pygtkwin): special build of Python, PyGObject, and GTK -* [bleachbit-misc](https://github.com/bleachbit/bleachbit-misc): supports development -* [CleanerML](https://github.com/bleachbit/cleanerml): extra cleaners -* [winapp2.ini](https://github.com/bleachbit/winapp2.ini): winapp2.ini cleaners database for Windows +* [BleachBit](https://github.com/bleachbit/bleachbit): main BleachBit application +* [pygtkwin](https://github.com/bleachbit/pygtkwin): special build of Python, PyGObject, and GTK +* [bleachbit-misc](https://github.com/bleachbit/bleachbit-misc): supports development +* [CleanerML](https://github.com/bleachbit/cleanerml): extra cleaners +* [winapp2.ini](https://github.com/bleachbit/winapp2.ini): winapp2.ini cleaners database for Windows ### Building translations If English is not your native language, you must build the translations. On Linux, run: -```terminal +```sh make -C po local ``` -Building translations is not supported on Windows, but you can copy the translations from another system or download them from Launchpad. Relative to ```bleachbit.py``` put the ```bleachbit.mo``` file in a directory called ```.\locale\es\LC_MESSAGES\``` (change ```es``` according to the language.) +Building translations is not supported on Windows, but you can copy the translations from another system or download them from Launchpad. Relative to `bleachbit.py` put the `bleachbit.mo` file in a directory called `.\locale\es\LC_MESSAGES\` (change `es` according to the language.) ### Running from source @@ -115,32 +115,32 @@ On Windows, double click on `bleachbit.py`. The Git repository changes frequently. To download changes, run: -```bash +```sh git pull --rebase make -C po local ``` To see recent changes, run: -```terminal +```sh git log --oneline --graph --decorate -n 20 ``` To switch to a tagged release, run: -```terminal +```sh git checkout v5.0.2 ``` To switch back to the master branch, run: -```terminal +```sh git checkout master ``` ### Further reading -* [Testing](/dev/testing.html) -* [Contributing patches and bug reports](https://www.bleachbit.org/contribute) +* [Testing]({% link _posts/2021-04-17-testing.md %}) +* [Contributing patches and bug reports](https://www.bleachbit.org/contribute) diff --git a/_posts/2015-09-25-shred-files-and-wipe-disks.md b/_posts/2015-09-25-shred-files-and-wipe-disks.md index aeb9adf..6d4df78 100644 --- a/_posts/2015-09-25-shred-files-and-wipe-disks.md +++ b/_posts/2015-09-25-shred-files-and-wipe-disks.md @@ -174,7 +174,7 @@ impossible to recover fully. Even when some data can't be fully wiped, you can make forensic recovery far slower and more expensive by burying it in noise. -BleachBit's [Chaff](/doc/chaff.html) feature generates large volumes +BleachBit's [Chaff]({% link _posts/2019-08-14-chaff.md %}) feature generates large volumes of semi-realistic decoy data, turning a needle-in-a-haystack problem into an overwhelming one. This complements other methods; it doesn't replace them, but it raises the cost and time required for anyone diff --git a/_posts/2015-09-25-winapp2ini.md b/_posts/2015-09-25-winapp2ini.md index 826c7ee..6efe554 100644 --- a/_posts/2015-09-25-winapp2ini.md +++ b/_posts/2015-09-25-winapp2ini.md @@ -14,7 +14,7 @@ BleachBit imports cleaning rules from `winapp2.ini` files, giving Windows users [Piriform does not endorse importing "CCleaner data" into BleachBit](https://www.bleachbit.org/news/ccleaner-asks-bleachbit-remove-winapp2ini-importer). If you are writing new cleaner definitions, write them in -[CleanerML](cleanerml) instead of `winapp2.ini` format because CleanerML +[CleanerML]({% link _posts/2015-09-25-cleanerml.md %}) instead of `winapp2.ini` format because CleanerML is cross-platform, not legally encumbered, and contains many features not available in `winapp2.ini`. @@ -37,6 +37,6 @@ To manually import `winapp2.ini` cleaners: Piriform, maker of CCleaner. An alternative file [winapp2.ini plus](https://github.com/bleachbit/winapp2.ini) is modified for BleachBit. 2. Place the `winapp2.ini` file in the right directory, which is most of the same directories as - [CleanerML](cleanerml). If you install BleachBit (i.e., non-portable mode), use + [CleanerML]({% link _posts/2015-09-25-cleanerml.md %}). If you install BleachBit (i.e., non-portable mode), use the directory `C:\Users\(username)\AppData\Roaming\BleachBit\Cleaners\` 3. Restart BleachBit. diff --git a/_posts/2015-09-30-install-on-linux.md b/_posts/2015-09-30-install-on-linux.md index 26d558e..9738c9d 100644 --- a/_posts/2015-09-30-install-on-linux.md +++ b/_posts/2015-09-30-install-on-linux.md @@ -56,13 +56,13 @@ is useful only if you are running from source. Here is how to install the hard requirements for the GTK GUI. -```terminal +```sh sudo apt install python3-gi python3-gi-cairo gir1.2-gtk-3.0 ``` Here is how to install the soft dependencies -```terminal +```sh sudo apt install python3-{chardet,psutil,requests} ``` diff --git a/_posts/2015-09-30-install-on-windows.md b/_posts/2015-09-30-install-on-windows.md index e2a37f1..fbb6ca8 100644 --- a/_posts/2015-09-30-install-on-windows.md +++ b/_posts/2015-09-30-install-on-windows.md @@ -62,5 +62,5 @@ The `/S` and `/NoDesktopShortcut` switches _are_ case-sensitive. ### After installation -After installation, review the [preference options](/doc/preferences.html) or skip -to [general usage](/doc/general-usage.html). +After installation, review the [preference options]({% link _posts/2015-09-25-preferences.md %}) or skip +to [general usage]({% link _posts/2015-09-25-general-usage.md %}). diff --git a/_posts/2018-03-14-troubleshooting.md b/_posts/2018-03-14-troubleshooting.md index b7b1023..e912e19 100644 --- a/_posts/2018-03-14-troubleshooting.md +++ b/_posts/2018-03-14-troubleshooting.md @@ -4,7 +4,7 @@ title: "Troubleshooting" subtitle: "Fix common errors and problems" nav_title: "Troubleshooting" category: doc -date: 2000-03-14 21:36:58 +date: 2018-03-14 21:36:58 order: 10 --- diff --git a/_posts/2019-04-19-contributing.md b/_posts/2019-04-19-contributing.md index 725140d..fe9de3d 100644 --- a/_posts/2019-04-19-contributing.md +++ b/_posts/2019-04-19-contributing.md @@ -4,14 +4,15 @@ title: "Contributing to CleanerML" subtitle: "A guide for cleaner developers" nav_title: "Contributing" category: cml -date: 2000-01-01 00:00:00 +date: 2019-04-19 00:00:00 +order: 4 --- Write your own cleaners to use yourself and to share with others. These cleaners define which files to delete or perform some other action. BleachBit includes one cleaner each for Firefox, Google Chrome, and so on. ### Writing the cleaner -First, follow the [CleanerML documentation](/cml/cleanerml.html) for technical instructions on writing the cleaner. +First, follow the [CleanerML documentation]({% link _posts/2015-09-25-cleanerml.md %}) for technical instructions on writing the cleaner. ### Testing the cleaner @@ -21,7 +22,7 @@ Backup any files which may be deleted before testing. Then, use this checklist f * BleachBit is not an uninstaller. * Each option accurately describes what it will delete. For example, an option labeled "logs" should not delete cache. * The descriptions are generic and reuse strings, so translators have less work. For example, Firefox should simply be labeled "Web browser" instead of "A popular, fast, free web browser." Look at other cleaners to see which strings they use. -* Use [variables](/cml/variables.html) rather than hard-coding paths. +* Use [variables]({% link _posts/2019-04-19-variables.md %}) rather than hard-coding paths. * Run BleachBit in a console window (`bleachbit_console.exe` on Windows) to check for any warnings. * In the XML, options are sorted alphabetically. * XML attributes in the action element are in the standard order: command, search, path. @@ -30,9 +31,9 @@ Backup any files which may be deleted before testing. Then, use this checklist f It is helpful if you prepare your cleaner before submitting it. -1. Put your cleaner in the ```cleaners``` directory of the BleachBit source. -2. Run ```make tests``` to check the XML against the XSD. -3. Run ```make pretty``` to reformat the XML. +1. Put your cleaner in the `cleaners` directory of the BleachBit source. +2. Run `make tests` to check the XML against the XSD. +3. Run `make pretty` to reformat the XML. ### Submitting the cleaner diff --git a/_posts/2019-04-19-variables.md b/_posts/2019-04-19-variables.md index 45fa3cb..01b3f7f 100644 --- a/_posts/2019-04-19-variables.md +++ b/_posts/2019-04-19-variables.md @@ -3,7 +3,8 @@ layout: page title: "CleanerML variables reference" nav_title: "Variables" category: cml -date: 2000-01-01 00:00:00 +date: 2019-04-19 00:00:00 +order: 3 --- BleachBit supports several kinds of variables for use in writing cleaning rules. diff --git a/_posts/2019-08-14-chaff.md b/_posts/2019-08-14-chaff.md index 55d2c14..cce27c6 100644 --- a/_posts/2019-08-14-chaff.md +++ b/_posts/2019-08-14-chaff.md @@ -4,7 +4,8 @@ title: "Chaff" subtitle: "Hide private files using decoy data" nav_title: "Chaff" category: doc -date: 2000-08-14 20:45:26 +date: 2019-08-14 20:45:26 +order: 9 --- When you delete a file, traces can remain on your storage drive, and digital forensics tools are designed to find them. BleachBit's **Chaff** diff --git a/_posts/2021-04-17-testing.md b/_posts/2021-04-17-testing.md index b73ca0e..7f87bf8 100644 --- a/_posts/2021-04-17-testing.md +++ b/_posts/2021-04-17-testing.md @@ -27,7 +27,7 @@ focus on different tests rather than repeating tests you already completed. ## Testing environment Ideally you would be testing the -[latest, bleeding-edge code from Git](/dev/running-from-source-code.html). +[latest, bleeding-edge code from Git]({% link _posts/2015-09-25-running-from-source-code.md %}). Otherwise, test the latest [beta](https://www.bleachbit.org/category/blog-tags/beta) or [latest stable release](https://www.bleachbit.org/download). @@ -127,7 +127,7 @@ After cleaning an application, run the application to make sure: - No unannounced changes were made. - All the requested changes were made. For example, BleachBit 0.7.1 did not delete stored passwords for Firefox 3. See - [CleanerML documentation](/cml/cleanerml.html) for advanced instructions on + [CleanerML documentation]({% link _posts/2015-09-25-cleanerml.md %}) for advanced instructions on finding more files to clean. ### Google Chrome @@ -166,7 +166,7 @@ or Windows Task Manager. ## Unit tests If you are comfortable using the command line and are -[prepared to run BleachBit from source code](/dev/running-from-source-code.html), +[prepared to run BleachBit from source code]({% link _posts/2015-09-25-running-from-source-code.md %}), run the unit tests with this command: `python3 tests/TestAll.py` diff --git a/_posts/2026-02-10-finding-files-to-delete.md b/_posts/2026-02-10-finding-files-to-delete.md index 1dc16f4..bc6612d 100644 --- a/_posts/2026-02-10-finding-files-to-delete.md +++ b/_posts/2026-02-10-finding-files-to-delete.md @@ -86,7 +86,7 @@ Sometimes it is helpful to search for a string that appears in the files you wan 3. Close Google Chrome. 4. Look for any remaining files related to TikTok. -```bash +```sh grep -RiPl "tiktok|byteoversea|tiktokcdn" ~/.config/google-chrome 2>/dev/null ``` diff --git a/_posts/2026-03-18-cookie-manager.md b/_posts/2026-03-18-cookie-manager.md index c2fc268..5627418 100644 --- a/_posts/2026-03-18-cookie-manager.md +++ b/_posts/2026-03-18-cookie-manager.md @@ -179,7 +179,7 @@ Support for those is planned for a future release. Until then, to prevent BleachBit from deleting localStorage or IndexedDB data, add their directories to the **Keep list** in Preferences. Example path: -``` +```text [...]/google-chrome/Default/IndexedDB/https_example.com_0.indexeddb.leveldb/ ``` diff --git a/_posts/2026-04-29-expert-mode.md b/_posts/2026-04-29-expert-mode.md index 1e97c8e..443ce74 100644 --- a/_posts/2026-04-29-expert-mode.md +++ b/_posts/2026-04-29-expert-mode.md @@ -114,7 +114,7 @@ deleted files. Keep in mind: - Effectiveness depends on storage type, encryption, and other factors. - It can increase wear on SSDs. -See [Shred files and wipe disks](/doc/shred-files-and-wipe-disks.html) for more +See [Shred files and wipe disks]({% link _posts/2015-09-25-shred-files-and-wipe-disks.md %}) for more information. ### Windows File Explorer options diff --git a/css/main.css b/_sass/_base.scss old mode 100755 new mode 100644 similarity index 100% rename from css/main.css rename to _sass/_base.scss diff --git a/css/syntax.css b/_sass/_syntax.scss similarity index 100% rename from css/syntax.css rename to _sass/_syntax.scss diff --git a/css/main.scss b/css/main.scss new file mode 100644 index 0000000..dc8bf2b --- /dev/null +++ b/css/main.scss @@ -0,0 +1,5 @@ +--- +--- + +@use "syntax"; +@use "base"; diff --git a/images/bleachbit_5_1_1_cookie_manager_windows_11.png b/images/bleachbit_5_1_1_cookie_manager_windows_11.png index 736c190..a5bf3f5 100644 Binary files a/images/bleachbit_5_1_1_cookie_manager_windows_11.png and b/images/bleachbit_5_1_1_cookie_manager_windows_11.png differ diff --git a/images/bleachbit_5_1_1_main_window_windows_11.png b/images/bleachbit_5_1_1_main_window_windows_11.png index 24c30e5..1f0ec27 100644 Binary files a/images/bleachbit_5_1_1_main_window_windows_11.png and b/images/bleachbit_5_1_1_main_window_windows_11.png differ diff --git a/images/bleachbit_5_1_1_preferences_windows_11.png b/images/bleachbit_5_1_1_preferences_windows_11.png index 69fd39d..5a9095e 100644 Binary files a/images/bleachbit_5_1_1_preferences_windows_11.png and b/images/bleachbit_5_1_1_preferences_windows_11.png differ diff --git a/images/bleachbit_6_0_0_windows11_preferences_dark_mode.png b/images/bleachbit_6_0_0_windows11_preferences_dark_mode.png index 2917313..a3d7a72 100644 Binary files a/images/bleachbit_6_0_0_windows11_preferences_dark_mode.png and b/images/bleachbit_6_0_0_windows11_preferences_dark_mode.png differ diff --git a/images/debug-windows10.png b/images/debug-windows10.png index 6352282..2d5e7cc 100644 Binary files a/images/debug-windows10.png and b/images/debug-windows10.png differ diff --git a/images/run-dialog-windows10.png b/images/run-dialog-windows10.png index c5f42c8..0bf5e8e 100644 Binary files a/images/run-dialog-windows10.png and b/images/run-dialog-windows10.png differ diff --git a/images/windows-10-verified-publisher-certum.png b/images/windows-10-verified-publisher-certum.png index 2f6e9e3..9567085 100644 Binary files a/images/windows-10-verified-publisher-certum.png and b/images/windows-10-verified-publisher-certum.png differ diff --git a/index.md b/index.md index 89eaa9a..71f0650 100644 --- a/index.md +++ b/index.md @@ -23,19 +23,19 @@ Simply select the options you want to clean, preview what will be deleted, and c BleachBit supports advanced features including: -- [Command line interface](/doc/command-line-interface.html) -- [Cookie manager](/doc/cookie-manager.html) -- [Custom cleaners](/cml/cleanerml.html) -- [Wipe empty space](/doc/shred-files-and-wipe-disks.html) +- [Command line interface]({% link _posts/2015-09-25-command-line-interface.md %}) +- [Cookie manager]({% link _posts/2026-03-18-cookie-manager.md %}) +- [Custom cleaners]({% link _posts/2015-09-25-cleanerml.md %}) +- [Wipe empty space]({% link _posts/2015-09-25-shred-files-and-wipe-disks.md %}) ## Getting Started Use the navigation on the left to browse the documentation. If you're new to BleachBit, we recommend starting with: 1. [Download BleachBit](https://www.bleachbit.org/download/) -1. [Install on Windows](/doc/install-on-windows.html) or [Linux](/doc/install-on-linux.html) -1. [Configure preferences](/doc/preferences.html) -1. [General usage](/doc/general-usage.html) -1. [Review the FAQ](/doc/frequently-asked-questions.html) for common questions +1. [Install on Windows]({% link _posts/2015-09-30-install-on-windows.md %}) or [Linux]({% link _posts/2015-09-30-install-on-linux.md %}) +1. [Configure preferences]({% link _posts/2015-09-25-preferences.md %}) +1. [General usage]({% link _posts/2015-09-25-general-usage.md %}) +1. [Review the FAQ]({% link _posts/2015-09-25-frequently-asked-questions.md %}) for common questions -![BleachBit 5.1.1 on Windows 11](images/bleachbit_5_1_1_main_window_windows_11.png "The main screen of BleachBit 5.1.1 on Windows 11") +![BleachBit 5.1.1 on Windows 11](/images/bleachbit_5_1_1_main_window_windows_11.png "The main screen of BleachBit 5.1.1 on Windows 11") diff --git a/sitemap.xml b/sitemap.xml deleted file mode 100644 index dfea20d..0000000 --- a/sitemap.xml +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: null ---- - - - {% for page in site.pages %} - {% unless page.sitemap == false or page.url contains '.xml' or page.url == '/redirects.json' %} - - https://docs.bleachbit.org{{ page.url }} - - {% endunless %} - {% endfor %} - {% for post in site.posts %} - {% unless post.sitemap == false %} - - https://docs.bleachbit.org{{ post.url }} - - {% endunless %} - {% endfor %} -