I Need Your Help Adding org-utf-to-xetex to MELPA

Hello friends. Despite my best efforts, I cannot do my part to add org-utf-to-xetex to MELPA—this is my fault.

Unfortunately, I’m unsure why I can’t fork the repo, but I need your help now.

If you are up for the mission then here are the details.

If you are curious about becoming a co-maintainer—that would be even better! org-utf-to-xetex makes it easy to specify the correct fonts for Unicode characters in primarly Latin character documents. It is a blast to use and makes it easy to add all sorts of characters into your documents that would normally end up looking like this “□□□□□”!

Together, we can get far, and this package is worth it!

Interesting new gptel v0.9.8 features and commits since v0.9.7

The latest version of gptel has some cool features and refinements! See Version v0.9.8 Latest.

Watching gptel get developed is a MASTER CLASS in software development! Observe the constant consideration and addition of user facing features, refinement the existing code, adding new code and concepts (request FSM for example). It is the work of true masters.

If you love programming elisp it is yet another perfect example of writing re-world supportable and maintainable and flexible code. Might sound trifing but here are some elisp features that are extremely useful in real-world programming so check them out if you haven’t before:

  • cl-assert
  • cl-loop
  • cl-typep
  • condition-case
  • condition-case-unless-debug
  • if-let*
  • letrec
  • pcase-let
  • plist-put
  • quasiquote
  • structs
  • when-let

Here are the commits I found cool with a reason why.

Continue reading “Interesting new gptel v0.9.8 features and commits since v0.9.7”

Refactoring a Simple Example of Simultanously User-Friendly and Debuggable Code

Today, I was playing around with hs-minor-mode. hs-show-all and hs-hide-all work great to give you a quick overview of the file. It is so good, in fact, that it #1 deserves a key-binding because you call it a lot, and #2 starts to get tedious alternately calling them. Consequently, I looked for a fix, some kind of toggling function

code here

Org2Blog v1.1.(14-18) Updates Overview

Here are the Org2Blog updates I forgot to post 🤦🤣.

v1.1.14

  • Documentation recognizes Org2Blog as an application
  • Adds Writer Tools menu and features: writegood, spellcheck, and word count
  • Adds Value for project itself
  • Adds more documentation and images on application design
  • Explains amsmath status

v1.1.15

  • When you add (emacs "XX.YY") to the Package-Requires header line it must be at least one major version less than the current version
  • This release updates the dependency to 27.1

v1.1.16

  • Override Org-generated CSS Underline with plain HTML underline

v1.1.17

  • Removes generated package file
  • Updates copyrights
  • Fixes links and typos

v1.1.18

  • Upgraded to Emacs v29.4 and Org mode vOrg mode version 9.6.15
  • 2 Bug Fixes
  • Indentation Fixes

Org mode: Table Data ⇒ Code ⇒ Results

Quick example of how to use table data in a source block with Bash:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#+name: data
| 1 |
| 2 |
| 3 |
| 4 |
 
#+name: code
#+begin_src sh :var arg=data :results output
printf "%s\n" "${arg[@]}"
#+end_src
 
#+RESULTS: code
#+begin_EXAMPLE
1
2
3
4
#+end_EXAMPLE

Here is how the block expands using org-babel-expand-src-block:

1
2
3
unset arg
declare -a arg=( '1' '2' '3' '4' )
printf "%s\n" "${arg[@]}"

Choosing Between Code and Verbatim Markup In Org Mode

Its helped me to standardize my approach to marking up techie language. Keeping it simple the content is either programming stuff or everything else tech related. Sufficiently vauge you see: I write down examples to keep it straight in my head. Here you go:

Continue reading “Choosing Between Code and Verbatim Markup In Org Mode”

Configuring A Simple-Modeline

Customizing your Mode-Line is one step forward on every Emacser’s right of passage. Whether you use the informative yet quiet built-in Mode-Line or the visually stunning doom-modeline: you are finding the right porridge for you. Here is my choice―a simple halfway between those two―simple-modeline.

Its so great that I copied and pasted the options here. Alternately run customize or open simple-modeline-segments.el and occur simple-modeline-segment on it. Yup, that great.

Read on for the variable info

You Gotta Try Using ~describe-symbol~

You gotta try out using describe-symbol because it is usually what you really want from describe-function and describe-variable.

The most useful part is that it instantly teaches you when there are both a variable and a function with the same name. Sometimes it is surprising and better to know right away. For example M-x describe-symbol RET emacs-version RET:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
emacs-version is an interactive compiled Lisp function in ‘version.el’.
 
(emacs-version &optional HERE)
 
Display the version of Emacs that is running in this session.
With a prefix argument, insert the Emacs version string at point
instead of displaying it.
If called from Lisp, by default return the version string; but
if the optional argument HERE is non-nil, insert the string at
point instead.
 
Don’t use this function in programs to choose actions according
to the system configuration; look at ‘system-configuration’ instead.
 
  Probably introduced at or before Emacs version 19.20.
 
―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
 
emacs-version is a variable defined in ‘C source code’.
 
Its value is "28.1"
 
Version numbers of this version of Emacs.
This has the form: MAJOR.MINOR[.MICRO], where MAJOR/MINOR/MICRO are integers.
MICRO is only present in unreleased development versions,
and is not especially meaningful.  Prior to Emacs 26.1, an extra final
component .BUILD is present.  This is now stored separately in
‘emacs-build-number’.
 
  Probably introduced at or before Emacs version 19.20.