NeatNit left a comment (openstreetmap/openstreetmap-website#5840)

> This is a version that modifies the document, consisting of replaced 
> `document` method, assuming we don't need to add `dir` on inline elements:
> 
> ```ruby
>     def document
>       return @document if @document
> 
>       @document = Kramdown::Document.new(self)
> 
>       add_dir = lambda do |element|
>         target_types = %w[p header pre codeblock ul ol table dl math]
>         element.attr["dir"] ||= "auto" if target_types.include?(element.type 
> == :html_element ? element.value : element.type.to_s)
>         element.children.each(&add_dir)
>       end
>       add_dir.call(@document.root)
> 
>       @document
>     end
> ```

Thank you, I want to use this method instead of mine. Just a couple of 
questions:

Is it good practice to use a lambda like that? Wouldn't it be better to define 
a function normally and call that? (I'm a Ruby newbie, but this seems a bit 
strange to me)

And, is `element.type == :html_element` supposed to catch elements written as 
HTML within the Markdown source? In which case I think we should not add 
`dir="auto"` - if the user crafts their own HTML for whatever reason, we 
shouldn't change their work.

----

I will not be able to make modifications to the code for the next few days 
(until Tuesday or Wednesday, most likely), but I'd like to do this:

- [ ] Modify document upon creation instead of deriving a converter (i.e. what 
I replied to just now) 
- [ ] Make `linkify` add `dir="ltr"` to links - this would also affect 
changeset comments and the like
- [ ] Made triple sure that links made with `<URL>` markdown syntax actually 
get `dir="auto"` - I did not test this enough and it likely fails in some 
cases. Namely when the URL contains Unicode characters and they get replaced by 
`%D7%90` or whatever. 

I'll make these changes as soon as I can, next week. If any more feedbacks 
comes up I'll handle it too.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/openstreetmap/openstreetmap-website/pull/5840#issuecomment-2759773367
You are receiving this because you are subscribed to this thread.

Message ID: 
<openstreetmap/openstreetmap-website/pull/5840/c2759773...@github.com>
_______________________________________________
rails-dev mailing list
rails-dev@openstreetmap.org
https://lists.openstreetmap.org/listinfo/rails-dev

Reply via email to