Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
# .git is deliberately not ignored: jekyll-last-modified-at needs the history

_site
_pages
.jekyll-cache
.jekyll-metadata
src/.jekyll-cache
src/.jekyll-metadata
vendor
.bundle
.netlify
Expand Down
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
*.sw?
_site
_pages
*~

# Ruby/Jekyll generated files
Expand Down
4 changes: 2 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,8 @@ RUN git config --system --add safe.directory /app

COPY --from=gems --chown=${UID}:${GID} ${BUNDLE_PATH} ${BUNDLE_PATH}

# WORKDIR would create these root-owned, and jekyll writes to all three
RUN install -d -o "${UID}" -g "${GID}" /app /app/_site /app/.jekyll-cache
# WORKDIR would create these root-owned, and jekyll writes to them
RUN install -d -o "${UID}" -g "${GID}" /app /app/_site /app/src /app/src/.jekyll-cache

WORKDIR /app
COPY --chown=${UID}:${GID} . .
Expand Down
34 changes: 16 additions & 18 deletions _config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,21 +12,20 @@ google_analytics_id: ''
# Enable/show navigation. There are there options:
# 0 - always hide
# 1 - always show
# 2 - show only if posts are present
# 2 - show only if docs are present
navigation: 2

# URL to source code, used in _includes/footer.html
#codeurl: 'https://github.com/bruth/jekyll-docs-template'

# Default categories (in order) to appear in the navigation
sections: [
['doc', 'Documentation'],
['tut', 'Tutorial'],
['ref', 'Reference'],
['cml', 'CleanerML'],
['dev', 'Developers'],
['post', 'Posts']
]
# Navigation sections, in order. Key is the page's `category`.
sections:
doc: Documentation
tut: Tutorial
ref: Reference
cml: CleanerML
dev: Developers
post: Posts

# Keep as an empty string if served up at the root. If served up at a specific
# path (e.g. on GitHub pages) leave off the trailing slash, e.g. /my-project
Expand All @@ -35,6 +34,11 @@ baseurl: ''
# Dates are not included in permalinks
permalink: none

collections:
docs:
output: true
permalink: /:categories/:name:output_ext

# Syntax highlighting
highlighter: rouge

Expand All @@ -54,14 +58,8 @@ sass:
# Since these are pages, it doesn't really matter
future: true

# Exclude non-site files
exclude:
- bin
- compose.yaml
- COPYING
- Dockerfile
- Makefile
- README.md
# Site files live in src/, repo tooling stays in the root
source: src

# Use the kramdown Markdown renderer
markdown: kramdown
Expand Down
45 changes: 8 additions & 37 deletions bin/jekyll-page
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,6 @@ parser = OptionParser.new do |opt|
opt.on('-e', '--edit', 'Edit the page') do |edit|
options[:edit] = true
end
opt.on('-l', '--link', 'Relink pages') do |link|
options[:link] = true
end
opt.on('-p PATH', '--path PATH', String, 'Path to project root') do |path|
options[:path] = path
end
Expand All @@ -32,52 +29,28 @@ filename = ARGV[2]

# Resolve any relative links
BASE_DIR = File.expand_path(options[:path])
POSTS_DIR = "#{BASE_DIR}/_posts"
PAGES_DIR = "#{BASE_DIR}/_pages"
DOCS_DIR = "#{BASE_DIR}/src/_docs"

# Ensure the _posts directory exists (we are in the correct directory)
if not Dir.exists?(POSTS_DIR)
puts "#{POSTS_DIR} directory does not exists"
# Ensure the _docs directory exists (we are in the correct directory)
if not Dir.exist?(DOCS_DIR)
puts "#{DOCS_DIR} directory does not exist"
exit
end

# Create _pages directory if it doesn't exist
if not Dir.exists?(PAGES_DIR)
Dir.mkdir(PAGES_DIR)
end

if options[:link]
Dir.foreach(POSTS_DIR) do |name|
next if name[0] == '.'
nodate = name[/\d{4}-\d{2}-\d{2}-(?<rest>.*)/, 'rest']
if File.symlink?("#{PAGES_DIR}/#{nodate}")
File.delete("#{PAGES_DIR}/#{nodate}")
end
abspath = File.absolute_path("#{POSTS_DIR}/#{name}")
File.symlink(abspath, "#{PAGES_DIR}/#{nodate}")
end
end

if not title or not category
# This flag can be used by itself, exit silently if no arguments
# are defined
if not options[:link]
puts parser
end
puts parser
exit
end

if not filename
filename = title.downcase.gsub(/[^a-z0-9\s]/, '').gsub(/\s+/, '-')
end

today=Date.today().strftime('%F')
now=DateTime.now().strftime('%F %T')

filepath = "#{POSTS_DIR}/#{today}-#{filename}.md"
symlink = "#{PAGES_DIR}/#{filename}.md"
filepath = "#{DOCS_DIR}/#{filename}.md"

if File.exists?(filepath)
if File.exist?(filepath)
puts "File #{filepath} already exists"
exit
end
Expand All @@ -97,13 +70,11 @@ File.open(filepath, 'w') do |file|
file.puts content
end

File.symlink("../_posts/#{today}-#{filename}.md", symlink)

if options[:edit]
if not ENV['EDITOR']
puts 'No $EDITOR variable set'
exit
end
puts ENV['EDITOR']
exec("#{ENV['EDITOR']} #{filename}")
exec("#{ENV['EDITOR']} #{filepath}")
end
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
8 changes: 4 additions & 4 deletions _posts/2015-09-25-cleanerml.md → src/_docs/cleanerml.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ During application startup, BleachBit looks for CleanerML files in a few standar
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\`

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.
Most of these locations are also scanned for [winapp2.ini]({% link _docs/winapp2ini.md %}) files, but you may only use one winapp2.ini file.

The diagnostics section of the application lists these directories.

Expand All @@ -52,7 +52,7 @@ To learn CleanerML so you can write your own cleaner, read these resources:

## Finding files to delete

See [Finding files to delete]({% link _posts/2026-02-10-finding-files-to-delete.md %}).
See [Finding files to delete]({% link _docs/finding-files-to-delete.md %}).

## Matching files

Expand Down Expand Up @@ -139,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]({% link _posts/2019-04-19-variables.md %}).
multi-value variables. For more information, see [Variables]({% link _docs/variables.md %}).

## Sharing your cleaner

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 %}).
Of course, you may use your cleaner privately. If you wish to share it with others, see [Contribute Cleaner]({% link _docs/contributing.md %}).



Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ bleachbit --shred "C:\Microsoft Exchange\Top Secret Emails\"

## Wiping empty space

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.
When files are [deleted without shredding]({% link _docs/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.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Write your own cleaners to use yourself and to share with others. These cleaners

### Writing the cleaner

First, follow the [CleanerML documentation]({% link _posts/2015-09-25-cleanerml.md %}) for technical instructions on writing the cleaner.
First, follow the [CleanerML documentation]({% link _docs/cleanerml.md %}) for technical instructions on writing the cleaner.


### Testing the cleaner
Expand All @@ -22,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]({% link _posts/2019-04-19-variables.md %}) rather than hard-coding paths.
* Use [variables]({% link _docs/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.
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -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]({% link _posts/2015-09-25-shred-files-and-wipe-disks.md %}) for more
See [Shred files and wipe disks]({% link _docs/shred-files-and-wipe-disks.md %}) for more
information.

### Windows File Explorer options
Expand Down
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -68,5 +68,5 @@ The `/S` and `/NoDesktopShortcut` switches _are_ case-sensitive.

### After installation

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 %}).
After installation, review the [preference options]({% link _docs/preferences.md %}) or skip
to [general usage]({% link _docs/general-usage.md %}).
Original file line number Diff line number Diff line change
Expand Up @@ -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]({% link _posts/2026-04-29-expert-mode.md %}).
and confirmation dialogs, see [Expert mode]({% link _docs/expert-mode.md %}).

### Custom

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ git checkout master

### Further reading

* [Testing]({% link _posts/2021-04-17-testing.md %})
* [Testing]({% link _docs/testing.md %})
* [Contributing patches and bug reports](https://www.bleachbit.org/contribute)


Original file line number Diff line number Diff line change
Expand Up @@ -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]({% link _posts/2019-08-14-chaff.md %}) feature generates large volumes
BleachBit's [Chaff]({% link _docs/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
Expand Down
6 changes: 3 additions & 3 deletions _posts/2021-04-17-testing.md → src/_docs/testing.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,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]({% link _posts/2015-09-25-running-from-source-code.md %}).
[latest, bleeding-edge code from Git]({% link _docs/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).

Expand Down Expand Up @@ -128,7 +128,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]({% link _posts/2015-09-25-cleanerml.md %}) for advanced instructions on
[CleanerML documentation]({% link _docs/cleanerml.md %}) for advanced instructions on
finding more files to clean.

### Google Chrome
Expand Down Expand Up @@ -167,7 +167,7 @@ or Windows Task Manager.
## Unit tests

If you are comfortable using the command line and are
[prepared to run BleachBit from source code]({% link _posts/2015-09-25-running-from-source-code.md %}),
[prepared to run BleachBit from source code]({% link _docs/running-from-source-code.md %}),
run the unit tests with this command:

```sh
Expand Down
File renamed without changes.
File renamed without changes.
4 changes: 2 additions & 2 deletions _posts/2015-09-25-winapp2ini.md → src/_docs/winapp2ini.md
Original file line number Diff line number Diff line change
Expand Up @@ -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]({% link _posts/2015-09-25-cleanerml.md %}) instead of `winapp2.ini` format because CleanerML
[CleanerML]({% link _docs/cleanerml.md %}) instead of `winapp2.ini` format because CleanerML
is cross-platform, not legally encumbered, and contains many features
not available in `winapp2.ini`.

Expand All @@ -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]({% link _posts/2015-09-25-cleanerml.md %}). If you install BleachBit (i.e., non-portable mode), use
[CleanerML]({% link _docs/cleanerml.md %}). If you install BleachBit (i.e., non-portable mode), use
the directory `C:\Users\(username)\AppData\Roaming\BleachBit\Cleaners\`
3. Restart BleachBit.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
4 changes: 2 additions & 2 deletions _includes/navigation.html → src/_includes/navigation.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
{%- for section in site.sections %}
{%- assign attr = section[0] %}
{%- assign label = section[1] %}
{%- if site.categories[attr] %}
{%- assign pages = site.categories[attr] | sort: 'order' %}
{%- assign pages = site.docs | where: 'category', attr | sort: 'order' %}
{%- if pages.size > 0 %}
<li class="nav-header">{{ label }}</li>
{%- for page in pages %}
<li><a href="{{ site.baseurl }}{{ page.url }}">{{ page.nav_title | default: page.title }}</a></li>
Expand Down
6 changes: 3 additions & 3 deletions _layouts/default.html → src/_layouts/default.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@
</div>

<div class="row">
{%- assign post_count = site.posts|size %}
{%- if site.navigation != 0 and site.navigation == 1 or post_count > 0 %}
{%- assign doc_count = site.docs | size %}
{%- if site.navigation != 0 and site.navigation == 1 or doc_count > 0 %}
<div id="navigation" class="col-sm-2">
{% include navigation.html %}
</div>
Expand All @@ -39,7 +39,7 @@

{%- if page.disqus == 1 %}
<div class="row">
{%- if site.navigation == 1 or post_count > 0 %}
{%- if site.navigation == 1 or doc_count > 0 %}
<div id="navigation" class="col-sm-2"></div>
<div id="disqus" class="col-sm-10">
{% include disqus.html %}
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes
File renamed without changes
File renamed without changes
16 changes: 8 additions & 8 deletions index.md → src/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -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]({% 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 %})
- [Command line interface]({% link _docs/command-line-interface.md %})
- [Cookie manager]({% link _docs/cookie-manager.md %})
- [Custom cleaners]({% link _docs/cleanerml.md %})
- [Wipe empty space]({% link _docs/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]({% 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
1. [Install on Windows]({% link _docs/install-on-windows.md %}) or [Linux]({% link _docs/install-on-linux.md %})
1. [Configure preferences]({% link _docs/preferences.md %})
1. [General usage]({% link _docs/general-usage.md %})
1. [Review the FAQ]({% link _docs/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")
File renamed without changes.