
s2k
Write Better with Vale: Is is possible to copy & paste code from the epub version without invisible characters?
Context
Hardware & OS:
OS: macOS Tahoe 26.0 arm64
Host: MacBook Pro
Observation
One of the code snippets as seen in epub is this:
When I mark the code and copy it into a text editor, I get
“ StylesPath = ../styles MinAlertLevel = suggestion [*.html] BasedOnStyles = Vale Vale.Spelling = error”
Excerpt From
Write Better with Vale
Brian P. Hogan
This material may be protected by copyright.
…and that’s fine. Removing the lower part and reformatting the part in the double quotes is easy enough. After doing that, I’m left with:
StylesPath = ../styles
MinAlertLevel = suggestion
[*.html]
BasedOnStyles = Vale
Vale.Spelling = error
This looks good, but alas it isn’t: Running vale .
in (an empty) folder containing only this ini file, I get:
> vale .
E100 [NewE201] Runtime error
The path ‘/Users/stephan/dev/vale_example_project/../styles’ does not exist.
Execution stopped with code 1.
It took me a while to find the issue.
Using cat
on the file doesn’t show anything suspecting:
> cat .vale.ini
StylesPath = ../styles
MinAlertLevel = suggestion
[*.html]
BasedOnStyles = Vale
Vale.Spelling = error
Dumping the file to show the characters and hex codes, I get this:
> fd -w16 .vale.ini
.vale.ini
53 74 79 6c 65 73 50 61 74 68 20 3d 20 e2 80 8b | S t y l e s P a t h ␠ = ␠
2e 2e 2f 73 74 79 6c 65 73 e2 80 8b e2 80 8b 0a | . . / s t y l e s ␊
4d 69 6e 41 6c 65 72 74 4c 65 76 65 6c 20 3d 20 | M i n A l e r t L e v e l ␠ = ␠
e2 80 8b 73 75 67 67 65 73 74 69 6f 6e e2 80 8b | s u g g e s t i o n
e2 80 8b 0a 0a 5b 2a 2e 68 74 6d 6c 5d e2 80 8b | ␊ ␊ [ * . h t m l ]
e2 80 8b 0a 42 61 73 65 64 4f 6e 53 74 79 6c 65 | ␊ B a s e d O n S t y l e
73 20 3d 20 e2 80 8b 56 61 6c 65 e2 80 8b | s ␠ = ␠ V a l e
e2 80 8b 0a 56 61 6c 65 2e 53 70 65 6c 6c 69 6e | ␊ V a l e . S p e l l i n
67 20 3d 20 e2 80 8b 65 72 72 6f 72 e2 80 8b 0a | g ␠ = ␠ e r r o r ␊
(fd
is for ‘file dump’, a Ruby tool I wrote [and available at https://github.com/s2k/fd\])
Aha! There are sequences of e2 80 8b
that vale
can’t cope with.
Now, this sequence (in UTF-8) is a ‘zero width space’ (→ U+200B ZERO WIDTH SPACE: – Unicode – Codepoints ) which also explains why it’s not visible.
My question is: Is it possible to not put this zero-width-space in the copied code snippet (or not in the epub file)?
Cheers
Stephan
Marked As Solved

Margaret
IDK if this helps you, but there is a zip file with the code for the vale.ini file on the book’s web page: https://media.pragprog.com/titles/bhvale/code/bhvale-code.zip
Also Liked

bphogan
@s2k that just makes me smile so much. What a great application of the book’s content.
This is exactly how I use Vale at $dayJob… to find things we want to fix.
FWIW I verified that there’s nothing in the original code that causes this, so it’s something I’ll have to raise with the publisher.
Popular Pragmatic Bookshelf topics










Other popular topics









Categories:
Sub Categories:
Popular Portals
- /elixir
- /rust
- /ruby
- /wasm
- /erlang
- /phoenix
- /keyboards
- /rails
- /python
- /js
- /security
- /go
- /swift
- /vim
- /clojure
- /emacs
- /haskell
- /java
- /svelte
- /onivim
- /typescript
- /kotlin
- /c-plus-plus
- /crystal
- /tailwind
- /react
- /gleam
- /ocaml
- /flutter
- /elm
- /vscode
- /ash
- /opensuse
- /html
- /centos
- /php
- /deepseek
- /zig
- /scala
- /lisp
- /textmate
- /sublime-text
- /nixos
- /debian
- /react-native
- /agda
- /kubuntu
- /arch-linux
- /django
- /ubuntu
- /revery
- /deno
- /manjaro
- /spring
- /nodejs
- /diversity
- /lua
- /julia
- /slackware
- /c