From c31365115b395cce848767c7688794c52920f08a Mon Sep 17 00:00:00 2001
From: Yessiest <yessiest@memeware.net>
Date: Fri, 7 Mar 2025 23:49:11 +0000
Subject: [PATCH] proper autolinks in html

---
 bin/mmmdpp                 |  6 ++----
 lib/mmmd/blankshell.rb     |  4 +++-
 lib/mmmd/renderers/html.rb | 10 ++++++----
 mmmd.gemspec               |  2 +-
 4 files changed, 12 insertions(+), 10 deletions(-)

diff --git a/bin/mmmdpp b/bin/mmmdpp
index b2c2c9b..be7e855 100755
--- a/bin/mmmdpp
+++ b/bin/mmmdpp
@@ -1,4 +1,4 @@
-#!/bin/ruby
+#!/usr/bin/env ruby
 # frozen_string_literal: true
 
 require 'io/console/size'
@@ -116,8 +116,6 @@ class OptionNavigator
   end
 end
 
-return unless $PROGRAM_NAME == __FILE__
-
 options = {
   include: [],
   nav: OptionNavigator.new
@@ -162,7 +160,7 @@ renderer_opts["hsize"] ||= IO.console_size[1]
 input = ARGV[0] == "-" ? $stdin.read : File.read(ARGV[0])
 output = ARGV[1] == "-" ? $stdout : File.open(ARGV[1], "w")
 doc = MMMD.parse(input)
-rclass = Renderers[options[:renderer] || "PlainTerm"]
+rclass = Renderers[options[:renderer] || "Plainterm"]
 raise StandardError, "unknown renderer: #{options[:renderer]}" unless rclass
 
 renderer = rclass.call.new(doc, renderer_opts)
diff --git a/lib/mmmd/blankshell.rb b/lib/mmmd/blankshell.rb
index 01a57f6..3628876 100644
--- a/lib/mmmd/blankshell.rb
+++ b/lib/mmmd/blankshell.rb
@@ -1209,7 +1209,9 @@ module PointBlank
         end
         return '<', parts[1..] unless buffer.match?(/^<[\w\-_+]+:[^<>\s]+>$/)
 
-        [build([buffer[1..-2]]), parts[(cutoff + 1)..]]
+        obj = build([buffer[1..-2]])
+        obj.properties[:uri] = buffer[1..-2]
+        [obj, parts[(cutoff + 1)..]]
       end
     end
 
diff --git a/lib/mmmd/renderers/html.rb b/lib/mmmd/renderers/html.rb
index d857643..281f35e 100644
--- a/lib/mmmd/renderers/html.rb
+++ b/lib/mmmd/renderers/html.rb
@@ -98,6 +98,10 @@ module MMMD
         },
         "PointBlank::DOM::Text" => {
           sanitize: true
+        },
+        "PointBlank::DOM::InlineAutolink" => {
+          tag: "a",
+          href: true
         }
       }.freeze
 
@@ -311,14 +315,12 @@ module MMMD
 
       def read_title(element)
         title = element.properties[:title]
-        title = MMMD::EntityUtils.encode_entities(title)
-        title.dump
+        title.inspect
       end
 
       def read_link(element)
         link = element.properties[:uri]
-        link = MMMD::EntityUtils.encode_entities(link)
-        link.dump
+        link.inspect
       end
 
       def indent(text)
diff --git a/mmmd.gemspec b/mmmd.gemspec
index 723c579..026f761 100644
--- a/mmmd.gemspec
+++ b/mmmd.gemspec
@@ -14,7 +14,7 @@ Gem::Specification.new do |spec|
   spec.email                 = "yessiest@text.512mb.org"
   spec.homepage              = "https://adastra7.net/git/Yessiest/rubymark"
   spec.files                 = Dir["lib/**/*"]
-  spec.bindir                = Dir["bin/"]
+  spec.bindir                = Dir["bin"]
   spec.executables << "mmmdpp"
   spec.extra_rdoc_files      = Dir["*.md"]
   spec.required_ruby_version = ">= 3.0.0"