this should work with the edge cases.
my old one would get choked up processing h2s and make would poop its pants and i'd have to manally rerun my automation. hopefull this fixes it. also i hadded some debugging checks that go off when i send to give a lil info incase it doesn't go through just to help me see whats goin' on better.
looks like the regex is screwing up the codeblock unfortunately
function! Blogpost()
" Get the current buffer content
let l:buf_content = join(getline(1, '$'), "\n")
" Debugging: Show the full content of the buffer
echo "Buffer Content:"
echo l:buf_content
" Try to extract the first heading tag (h1 through h6)
let l:title = ''
for l:i in range(1, 6) " Loop through heading levels to
let l:heading = matchstr(l:buf_content, '\(.*\)')
if l:heading != ''
let l:title = substitute(l:heading, '\(.*\)', '\1', '')
break
endif
endfor
" If no heading found, print error
if l:title == ''
echo "No heading found ( to )."
return
endif
" Debugging: Show extracted title
echo "Extracted Title:"
echo l:title
" Extract content after the first heading
let l:content_start = matchend(l:buf_content, '.*')
let l:content = strpart(l:buf_content, l:content_start)
" Debugging: Show the extracted content
echo "Extracted Content:"
echo l:content
" Check if title and content are not empty
if l:title == '' || l:content == ''
echo "Error: Missing title or content."
return
endif
" Create a dictionary for the JSON payload
let l:json_dict = {
\ 'title': l:title,
\ 'content': l:content
\ }
" Convert the dictionary to JSON
let l:json_payload = json_encode(l:json_dict)
" Debugging: Show the JSON payload
echo "JSON Payload:"
echo l:json_payload
" Create a temporary file to hold the JSON payload
let l:tmpfile = tempname()
call writefile([l:json_payload], l:tmpfile)
" Prepare the curl command
let l:cmd = 'curl -X POST https://hook.us1.make.com/YOUPUTYOURWEBOOKSECRETHERE -H "Content-Type: application/json" -d @' . shellescape(l:tmpfile)
" Run the curl command
let l:output = system(l:cmd)
" Clean up the temporary file
call delete(l:tmpfile)
" Show the output or errors
echo l:output
endfunction
" Create a command to run the function
command! Blogpost call Blogpost()