Wednesday, December 28, 2022

Getting More

How to negotiate to achieve your goals in the real world.

This is about a book.

This is not about a book.

There is a book by this title, and I read it. In the middle I thought hey, I understand this.

Living somewhere else would be constant negotiation. Maybe this method could provide a model for understanding, for living. For not being a doofus.

Maybe.

One thing I can say is this is a pleasant book to read. I can see why it is popular. It's the anecdotes. Anecdotes all over. It may be exactly 99 and 44/100ths percent anecdotes, but who's counting? The reading is breezy.

It is a smooth ride down a wide street with wind in your hair. Everything always works. Smiles abound. There are surpluses of satisfaction.

You forget that you expected to learn "How to negotiate to achieve your goals in the real world." You get all kinds of stories, with whipped cream and a pinch of catnip for Fritz as well. You forget that some negotiations fail.

Not to complain though. This is fun, done well. The core is there, a few pages in. You have to pay attention. You can still learn it. It's there.

Stuart Diamond wrote this. He is "one of the world's leading experts on negotiation", and taught at Wharton, and Harvard, and Columbia, NYU, USC, and Berkeley, and, in Dnepropetrovsk, put his hand right on the nozzle of a nuclear-tipped missile that had once been aimed pretty technically at Minneapolis, and negotiated there.

And I haven't, and didn't, and all that. Which is cool. We can't all do everything, which in turn is a good reason to read a book like this and find out stuff. He's good at this. I'm not. I need to learn.

Here is a spoiler: you can read "How to win friends and influence people", by Dale Carnegie instead. And get mostly the same story.

They are really the same book in a lot of ways, though Dale Carnegie is more general.

Key points:

  • Goals are paramount: What you want? Get that.
  • It's about them: Know the pictures in their heads.
  • Make emotional payments: Logic helps but feelings rule.
  • Every situation is different: Flex. Adapt. Scheme.
  • Incremental is best: Like dawn, bring the light with baby steps.
  • Trade things you value unequally: Big, small, tangible, intangible. Barter them.
  • Find their standards: That's what they stand for, right? Then they stand for it, right?
  • Be transparent and constructive, not manipulative: No faking, no bluffing, no bluster.
  • Always communicate, state the obvious, frame the vision: Talk. Be open, be honest, be real. Listen.
  • Find the real problem and make it an opportunity: Don't get lost in the fuzz.
  • Embrace differences: More perceptions, more ideas, more options make better negotiations.
  • Prepare - make a list and practice with it: If you are prepared, you do well.
  • The short version: Get your head on straight, figure out what you need to get, be open about it, trade things you don't need for things you do, be honest, listen, listen some more, listen even more, think, plan, build emotional connections, see things as the other side does, get to the root, get what you need, and don't be a jerk.

"Done right, there is no difference between 'negotiation', 'persuasion', 'communication', or 'selling'." See?

If not Dale Carnegie, you could instead read "Dress for success", by John T. Molloy. It's almost the same too. Or if you want, you can pick up all this on your own, though a good book hands you a framework to mull over.

So the main point is, if you are living in a new culture, then bringing deep negotiating skills may be seriously smart. Once you are there, then what? Use them. Be all you can be.

I did wonder why all the stories about getting a few cents off one thing, a free upgrade on the other, but the material comes from the author's experience, and his classes emphasize learning this way. An early assignment is to get a discount on something. Anything. Then they proceed, probably repeating the same process until it's ingrained.

I generally agree with something Bruce Burrill, a Buddhist friend, told me around 1970. Which was, you don't solve problems, you leave them behind. Me in general, I normally leave money on the table and get on with it to avoid getting neck deep in the give and take.[1]

But mine is not the only way. Probably not the smart way. I'm not smart a lot. I keep hearing that. Maybe I should learn too.

Most of of life isn't a single transaction. Life is all day, every day, in the same place, with the same people, and they like it if you learn your way in and keep negotiating.

So if you establish relationships, join a community, fit in, be accepted, be respected, and do more than just showing up, you might be doing it right.

Getting back to Bruce, I'm thinking there may be two ways to move on: by leaving or by landscaping.

I need to learn this (especially for being immersed in a different culture): quit searching for a better garden and cultivate the one you're in.

More quickies from the book:

  • Always communicate.
  • Listen and ask questions.
  • Value, don't blame them.
  • Summarize often.
  • Do role reversal.
  • Be dispassionate.
  • Articulate goals.
  • Be firm without damaging the relationship.
  • Look for small signals.
  • Discuss perceptual differences.
  • Find out how they make commitments.
  • Consult before deciding.
  • Focus on what you can control.
  • Avoid debating who is right.

The stories are like this (imagine it in Spanish if you like):

"It was pouring rain, and Chuck McCall had forgotten his umbrella. His office was four blocks away, and he had an important meeting in thirty minutes.

"He spotted someone getting off the same train who worked in a building a block away. He didn't know her, but he'd seen her on the train before. 'Hi,' he said 'I work a block away from you and I forgot my umbrella. Can I buy you a bagel and coffee on the way if you walk me to work? I know it's a block out of your way.'

"'I'm Chuck,' he continued. He looked up at the sky. 'It's wet. Maybe I can return the favor someday.'

"They walked to work under her big umbrella. He bought each of them coffee and a bagel. When they arrived, she told Chuck she felt good about doing this. They had each made a new friend for the train. 'What I've learned the most,' said Chuck, now the CEO of Astoria Energy, a big energy provider to New York City, 'is that being candid about what you want is a key to success in business and life in general.'

"In a world that sometimes seems full of muggers and other threats, we still have to get through the day. We have dozens of small interactions from the time we get up to the time we go to sleep. Together they can spell a life of frustration, or one of mastery and joy. Using the tools in 'Getting More', you will have a greater consciousness about the world immediately around you in a million different ways."

The fundamental business is living, and this might help with that, especially in a new culture.

 

Getting More

alt link

[1] Doofus: A person with poor judgment and taste. Dimwit. A stupid incompetent person.

 


Have anything worth adding? Then try sosayseff+nosey@nullabigmail.com
Me? Might get myself recycled soon.

 

Etc...

so says eff: sporadic spurts of grade eff distraction
definitions: outdoor terms
fiyh: dave's little guide to ultralight backpacking stoves
boyb: dave's little guide to backpacks
snorpy bits: nibbling away at your sanity
last seen receding: missives from a certain mobile homer
noseyjoe: purposefully poking my proboscis into technicals

Thursday, December 22, 2022

Different/Difference

Make Me Different. Make A Difference.

Say you have an idea. A big idea. A really, really big idea.

Cool, so who cares?

Size does not matter, potency does.

Your idea does not matter unless it matters. That's all that matters.

It gets easier when you ignore everyone else. Things get quieter. Like in your head. And then things can happen. You got that message before. Maybe it's sunk in by now. Hope so.

When you chase around, biting at flies, if you are successful you get to eat a fly for lunch. Chasing ideas is like that too. There are lots of bad ones around and you really don't want to catch any of them.

When you have a fixed idea about ideas, you are fixed. The way your neighbor's dog is fixed. Which is fine if that is your goal, but maybe not. Usually, when you have fixed ideas you are fixated on someone else's idea that happens to be stuck in your head.

And once it is, once it is stuck in your head, that alien idea, stuck there, then you have a problem.

It's like a piece of spinach stuck in your teeth, but in a good way. A good way because it's a good idea. (You aren't dumb enough to chase a dumb idea. Duh? No.) You chase good ideas. But it puts you in a bad way too because that idea is already taken. You can only borrow it, at best. Or steal it and pretend you didn't.

But it's already used.

If you borrow an idea you can't make it your own. And a borrowed idea isn't new. Not fresh. Not so interesting. You will wow no one. Fact of nature. Game over.

You can't start the race after it's over. Doesn't work. All you get is a view of horse butts.

So you lose.

This is good.

Nothing succeeds like failure.

Failure is the world's way of freshening up. Once you know you are a failure you have nothing left to lose. You already know what does not work, so you are way ahead.

You have a freshly-fertilized garden, but freshly-failed, and no one is expecting flowers from it, so you are A-OK, ready to go, cleared for liftoff, in a position to wow.

Someone else's idea is not yours. Someone else's game is not yours. So you reset the system, and you get to start over, with rules that you yourself make up. Because you are a failure, and because you have tried to copy success, and have played by the rules, and have had that gold ring on your mind for quite a while, and lost out, you are desperate.

Or were. Once.

Recently, in fact, but that didn't work, so you give up. You gave up.

So now you just play around at something, and that is when it can happen. Not always. No guarantee, but it can.

What can happen? What it is it?

Something new. Something unique. Something yours. Something that can change the world, or at least a part of

it. Something you are in control of. Something real.

Real. Really real.

Focus on that.

Focusing on the real makes it real.

And also, that which impresses may be big, and entertaining, but not always valuable.

That which speaks in a small voice may only be a random squeak, or it may be something valuable, and true. It may be something that has come to you and you alone for love and nurturing, because you were ready for it. Something that whispers truth and can change the world.

But you have to be there, and be open, and be honest, and be willing. Copying is not allowed.

If you are true to yourself at least you are true. You can't fake true, and people notice.

People like true. They will help you to be true, and to make more true, and to spread true around, and to become true like you.

Big ideas are always true at their core, and always start small, with the true part. Small is easier. Easier to understand, to make, to spread, to sell, to share, to appreciate.

Big comes later, but true comes first.

True is unique and different and honest, and wants a good home. And is always true. It is different from everything else and so makes a difference.

It will make you different and make a difference for you.

Which is what you want in creativity.

 


Have anything worth adding? Then try sosayseff+nosey@nullabigmail.com
Me? Still wondering.

 

Etc...

so says eff: sporadic spurts of grade eff distraction
definitions: outdoor terms
fiyh: dave's little guide to ultralight backpacking stoves
boyb: dave's little guide to backpacks
snorpy bits: nibbling away at your sanity
last seen receding: missives from a certain mobile homer
noseyjoe: purposefully poking my proboscis into technicals

Wednesday, December 14, 2022

I Thought So

This is about why things are better than ideas, and maybe not.

This is about business, whether or not money is involved. That sounds strange but business is more than money. Hucksters have been saying so for years. Making money is easy they say, don't worry about it. Easiest thing in the world. Or, if you do the right thing the money will follow. Inevitably.

The real message is underneath, snaking around, sniffing for your wallet. What they really want is the money, your money, but they don't want you to catch on.

This reinforces what I just said. Really. Business is about more than money, and in a way money isn't the point, even if it is. If you focus on money, and only on money, you will fail. You can't help it. Money is the wrong thing to focus on.

I've always felt that competitions were pointless. Take a sport. Sprinting. Say you want to compete. You want to win. The idea is to win, and you want to do that. So what's the most efficient way to win? Kill off the other competitors. Get real. Anything else would be stupid.

How much time do you really want to spend training? Do you really want to find out after years of effort that the kneecaps you were born with prevent a win? Screw that. If you want the trophy then blow away everyone else. Walk to the finish line. If no one else is running then you have it made.

Want to make lots of money? Don't see the point in earning an MBA and spending decades clawing to the top? Rob banks. Do a bunch in one day. Bing. End of story. Vacation time. Forever.

So if the whole idea was the payoff then things would be simple. Cut the crap and grab the pie.

But it doesn't work that way. In case you hadn't noticed.

There are reasons why you can't rob a bank when you need money. Or rob the guy sitting beside you on the bus. The whole law enforcement thing is not what I'm talking about either. The real reason is that it doesn't work. Like trickle-down economics, being a robber baron was tried once and it failed, left behind by history. You may have heard of it. Called the Dark Ages. People learned slowly, but they learned.

We're beyond that now. The reason is efficiency.

Hitting someone over the head and making off with their loot sounds like an efficiency. But it doesn't work as a general way of doing business. Even if only a few of us try it. Tends to disrupt everything else. Causes system-wide failures. So we don't do it. Business is about more than money. Where have you just heard that?

One way or another you have to inspire people. Give them a thrill. Make them want to join your side. Then make your side big so everyone can join, or most everybody. Make some money on the side. If you focus completely on money then you lose focus on everything else. Then you fail. And then you don't make any money. At all.

There is a split right down the middle of this game. On one side you have things and on the other you have ideas. Generally speaking things are easier. Its easier to base a business around providing things than around providing ideas. It tends to be easier to set up, easier to administer, and more profitable. Sort of.

Think about things versus ideas.

Things are easy to grasp. You reach out your hand and grab one. People like to touch stuff. It's built in. That's one reason we use the phrase "grasp an idea". We are that way. We want stuff we can pick up and play with and bite and throw.

Things are discrete. You know where an apple starts and where it ends. You know how big it is and what it weighs. You're familiar with its texture and flavor and color. A thing gives you several dimensions to judge it by, and you don't have to think about it either. You are hard wired.

If you have something today you have it tomorrow. You know what it is and where. You can paint racing stripes on it, give it a name, and trade it for something else, even if it's a cat.

So you want to set up a business? It's easier if you sell things. You don't need a creed. No need to take sides or argue a case. Just say here is this here thing, it does this and doesn't do that, it comes in these colors, lasts this long and costs this much. Buy it and do what you want with it.

But wait, there's more.

Once you own this thing you can use it all the time or only now and then. Get tired of it now, put it down and find it waiting in your closet next year. It'll still be good.

Buying, selling, using, storing: all simple. Things are tidy and clean. As long as a thing works it's always new because every time you use it the situation is a little different. Every backyard game is different, and so the football is too, sort of, even though it's the same. But different.

But maybe you have more competition selling things. Everybody can sell the same things as you.

So ideas, now, how about them? Maybe tougher.

Each idea is unique. No mass production.

Ideas are slipperier. Juggling them can make your head hurt. You have to work to get a grip. Each one is different so each one is unfamiliar, harder to customize because you have to know it inside and out, where it came from and where it is going. No size, no shape, no taste, no smell, no texture, no color.

You can't have crates of ideas waiting in the back room. There is no volume discount. Every idea is hand crafted and requires its own care and feeding regime.

Ideas go stale, or age out, or fade away. Ideas are tough to fit into a business model. You can't order from a catalog, in every possible size and color, to keep them in stock, just in case. And an idea is new only once, no matter how good it is. It comes with its own environment and doesn't feel different if you use it on the beach instead of at the office. There is no way to paint racing stripes on an idea.

On the other hand, ideas thrive among people. Ideas have a life of their own. They bring people together. They are almost the only reason to keep living.

Check out a major league baseball game. If it's not baseball that moves you, then pick opera, or quilting, or a church service. Then bind. You bind to ideas.

If it's a baseball game you aren't there for the seats, or the restrooms. It's the idea. Your team versus theirs. Or a good team versus another good team. The idea of sport, life, a struggle. To see excellence and its acting out. Or some other reason, but a reason all the same, one full of life. Reasons are ideas.

It's the group though. Maybe you're just sitting there at the game surrounded by others and enjoying that, or maybe you help to run things, but it's ideas that bring you to a group and hold you. You have a place. You have friends and enemies. You have meaning. Commonality. Sharing. Purpose. You can make better sense of things with others. This is why an idea appeals to you as a buyer.

As a seller of ideas things are hard.

Ideas are new only once. Ideas are always hard to keep alive. They are so slow to sell. There is only one of each idea, but anyone can make infinite copies, without asking first. Ideas are a hard breed, as you know if you've tried to create a new one. And people shy from any idea too unlike any other they know about.

This can be a hard sell, very hard.

Selling ideas is a poor way to make a living. It's better to rob banks if you want money. Except that robbing banks is even worse. Like democracy being the absolutely worst form of government except for all the others.

The key to ideas is the group. A society. A clan. A band of disciples. A congregation. A family. A community.

Find the right idea and the right way to share it with the right people and you have a self sustaining system. Even one idea can start the process. An idea which forms a core and then draws in a community. The pull of more and more people keeps communities growing. Feed in a few more of the right ideas and the community will reach critical mass and grow on its own.

If you gently manage the habitat, tend the ecosystem, you may make it, but not by cutting throats.

The system can grow and remain fresh based on ideas. Those ideas that remind us of why we are alive, that bring us the pleasure in being together. Do it right and some money will come along for the ride. Maybe a lot, maybe not.

That's another story. Think about whether you would rather be J.K. Rowling or a flower seller.

 


Have anything worth adding? Then try sosayseff+nosey@nullabigmail.com
Me? Learning to scheme.

 

Etc...

so says eff: sporadic spurts of grade eff distraction
definitions: outdoor terms
fiyh: dave's little guide to ultralight backpacking stoves
boyb: dave's little guide to backpacks
snorpy bits: nibbling away at your sanity
last seen receding: missives from a certain mobile homer
noseyjoe: purposefully poking my proboscis into technicals

Thursday, December 8, 2022

The Dettmer/Bisbee Slap

Take something so ordinary that you don't even see it. Add imagination. Jolt people into another order of consciousness.

I've just returned from alternate dimensions. Each one is exactly like our own but the meanings of things are completely different.

I have known people who have made a point of expostulating while waving their arms on why art is not important and has no place in their world. This opinion ignores reality.

The last time this happened, my friend and coworker was sitting in a chair. He had a desk, a computer on it, inside a cubicle. The floor was carpeted. His shelf held books. The desk drawer held pens, pencils, paper clips and Post-it notes, among other things.

He had no clue that even the pencil in his hand had undergone several centuries of development and marketing on several continents. (Read "The Pencil: A History of Design and Circumstance: by Henry Petroski.) True, most of this development was by engineers, scientists, and technical wizards, but the thickness, shape, length, color, and logo placed on the pencil are still under scrutiny.

It's easier to imagine if you take something less common, like a ball point pen. It's less a commodity and more a result of a specific company so you expect one specimen to be a bit different from all others. That comes from art, and art comes from creativity.

There is no formula.

I've just come across the work of two artists, John Bisbee and Brian Dettmer. Each one has a formula, of sorts, but their creative formulas are hidden, and inherent in their identities.

You can say that creativity is taking something familiar and making it unfamiliar. Not necessarily better in any sort of way. Possibly even often worse, even with no regard to utility.

Creativity is simple but hard. And is it scary. Frightening. Shocking. To be shocking is one of its uses. It provides us with some things that we need. One of them is simple novelty.

The human eye likes edges, whether they come from contrast (light against dark, dark against light, one color against another) or from sparkle. Handle a cut diamond or even a piece of broken glass in the sunshine and if you really look at it, you'll barely be able to put it down again. The flash of its reflections has an inherent attraction because it is always new.

Creativity provides edges. It takes us by the consciousness and throws us straight out of our normal world an into another one.

Your exploding breath, your shaking body, your howls, and your tears are all acknowledgment of the unexpected, creativity we call humor. We like that, but maybe we'll say we don't like the shower scene in "Psycho". That is also creativity. It jars, it jolts, and in this case frightens, but it also makes us more alive.

Creativity does that, and it can do it without always being pleasant. It is the kick into a totally different reality, another dimension, that counts.

It keeps us fresh. It reminds us that we don't know it all, and so refreshes a person's humility. It inspires. It picks up our spirits. It resets out own imaginations. It can be a piece of art on a wall, a piece of art that we stick onto an envelope, a horror movie, a roller coaster ride. Any of these and more.

Whichever it is and however encountered, creativity makes us better.

The source? Can't say, but I know that things come to me when they want to. Artists say that sort of thing all the time. Song writers just start hearing the music and words, and write them down as they come. A sculptor can't quite do that but if producing something meaningful from a block of marble is just to remove what isn't the subject, that implies some sort of guiding principle that the artist (the right artist) only has to listen to.

For me, in my simple way, at my limited level of creativity, it seems to be cross-linked connections somewhere. I'm always perceiving juxtapositions that act like a shock from a thick dry carpet.

Take this, not mine, but from a world class comedian: A person gets onto an elevator. Asks the other person already there where they're going. Second person says "Phoenix".

Do a thought experiment.

Go into a store, stop, pick the first thing handy, and see something about it that no one has has ever seen before. Write about it, photograph it, make up a joke or a song, or redesign in a way that will make people gasp.

As stated, it's simple but hard.

Now try that with a box of nails. If you succeed you are John Bisbee. If you succeed with a box of old books you are Brian Dettmer. John Bisbee welds nails together in ways you would have no reason to expect, and Brian Dettmer carves into books to reveal their internals.

Prefer yours in writing? OK, look up comedian Stephen Wright. You can find reams of his quotes online. Or go to Timothy McSweeney internet site and see what it's like to imagine Ernest Hemingway blogging about the top teams in college basketball. Too obvious? How about "Midlife-Crisis Bible Stories"? There's still "Open letters to people or entities who are unlikely to respond", a whole section of the site.

You can find anything you want if you go looking. People all over are full of creativity. If not the ones around you, then maybe you're in the wrong place. You could be somewhere else entirely, if you want. Somewhere more interesting. Like another universe where the books have been autopsied, or nails snake across the floor.

 


Have anything worth adding? Then try sosayseff+nosey@nullabigmail.com
Me? Grabbed me neck and slapped myself around for a while, just in case.

 

Refs:

Brian Dettmer at Wikipedia
John Bisbee at Wikipedia

 

Etc...

so says eff: sporadic spurts of grade eff distraction
definitions: outdoor terms
fiyh: dave's little guide to ultralight backpacking stoves
boyb: dave's little guide to backpacks
snorpy bits: nibbling away at your sanity
last seen receding: missives from a certain mobile homer
noseyjoe: purposefully poking my proboscis into technicals

Wednesday, November 30, 2022

Squish!

Oops. Someone just stepped on my brain.

I once had a job.

At a place.

That knew nothing.

About getting things done.

And I remember. The day. I had. My performance review.

Me. All I wanted. Was to do. What I was paid for. Really, really bad.

I wanted to scream with excellence. To soar. To create.

My boss. Said I should schmooze more.

He didn't like it. That I focused. So much. On work. At my desk.

I no longer work there.

And he. Went elsewhere. And then was fired.

Two down.

I have never worked at a place that valued the only thing it has.

People.

Truly all a business has.

Life. The essence of business.

Today? What do you see? All over?

Well.

Recently, a guy moved to a poor country. He likes it.

Because life is slower, and things are more personal. More real. Less complex.

And now, what he wants. Is easier online shopping.

That is, he wants to destroy the life he sought.

Because it would be. More convenient. To buy things. That way.

The story of modernity.

I like the internet. A lot. The internet is my friend. We get along. I read all day.

But in some ways the internet? You know? It's like rebreathing air.

A person wants something. An idea, an image, whatever. What then?

Just do the internet. Copy it. Stick it on the side of whatever you have. And pass it on.

There are businesses looking at this.

For copyright violations.

For theft of ideas.

For defending the look of the feel and the feel of the look.

People are all antsy all over.

The world is now about fighting over details and ensuring dues.

Are paid.

Exactly.

There is another principle.

"Be alive".

It is not about shopping, or suing.

Someone steals your jacket, your hairstyle, the words in your poem?

OK.

They can't steal your imagination or your style.

Right. Apple. Bitchin company. In many ways. They have smarts and style and keep moving.

And they'll sue you until you are only a bitter-tasting, discolored rancid spot. Too.

They do both.

But the keys.

Are intelligence and life. They has 'em.

Be creative, and real, and the pirates. Will be stealing. Only your shadow.

Never catching. You.

Because you are alive. And you move. On.

You are new and fresh. Always. And they dress in your old clothes. And look it.

So a company that destroys its creativity? Destroys itself.

And that creativity is not the company's. Or "in" the company. Or owned by it.

It belongs to life. To those who work there.

Every few months a new compendium of web trends comes out. Logos. Graphics. Page designs. Usability. Feel. Tricks.

You notice?

You also notice? That these continue coming out? Every few months?

Because things keep changing?

Because things keep changing.

They do.

That's life.

That's creativity.

That's what you've got, if you've got it.

Someone steals a facsimile of what you sort of once looked like or did or sold.

What's that? Then. Only that. It is not now.

You own now.

They can't steal who you are. Or what you are.

If you think independently. If you act independently.

If you are alive. If your company is.

If you are the people and the people is you.

If you let no one step on your brain.

Circulating around the office being seen between coffee breaks isn't enough.

Nor searching for better shopping.

Nor following the rules.

As a person.

As a being.

As a creator.

Nor is the role of hunter-killer, for a company trying. To work the system. By suing the world.

You have to do.

You have to be.

You have to make.

To create.

Then you've got something. You have it.

Move.

 

From when I thought I'd start a business. But I retired instead. Good choice.

 


Have anything worth adding? Then try sosayseff+nosey@nullabigmail.com
Me? Still not working.

 

Etc...

so says eff: sporadic spurts of grade eff distraction
definitions: outdoor terms
fiyh: dave's little guide to ultralight backpacking stoves
boyb: dave's little guide to backpacks
snorpy bits: nibbling away at your sanity
last seen receding: missives from a certain mobile homer
noseyjoe: purposefully poking my proboscis into technicals

Thursday, March 31, 2022

Capture

-- Capture Backgrounder --

Org-capture is global, may be called from anywhere in Emacs.

Calling org-capture displays a buffer which accepts notes.

Closing the buffer saves those notes.

Org-capture is customizable as to
     the types of notes
     where the notes are saved

 

-- Capture By Example --
(Six steps.)

1) Invoke Org-Capture
     via "M-x org-capture"
     there is no default key binding but one can be set

Emacs presents you with a menu like this...


  [t] Task
  [C] Customize
  [q] Abort

2) Create A New Task

Select "t" from the menu shown above, and you get an org-mode buffer that looks like...


    Capture buffer. Finish 'C-c C-c', refile 'C-c C-w', abort 'C-c C-k'.
    *** TODO
      [2022-03-01 Tue]
    [[file:~/../foo.org]]

3) Enter The Note’s Text Following The "TODO"

4) Save And Exit
     via "C-c C-c"
     Emacs saves the new task
     the default storage location is "~/.notes"
     this can also be customized

Saved notes look like...


  Tasks
  ** TODO Test
    [2022-02-10 Thu]
    [[file:~/Lib/2022-DEV/11-Org-Doc/Howardism--Capturing/01-Notes/org-capture.org::
      *Example][Example]] Totally bogus.
  ** TODO Foo
    [2022-02-10 Thu]
  [[file:~/Lib/2022-DEV/11-Org-Doc/Howardism--Capturing/01-Notes/org-capture.org::
    *Customizing][Customizing]]

5) To Customize Capture...
     select "C" for "Customize org-capture-templates"
     you get an org-mode buffer that contains a whole bunch of stuff (see below)

6) To Abort, Select "q"
     and then it does
     so, nothing to see here

 

-- Capture Commands --

From org manual (v 9.5, section 10.1.2, "Using capture")

M-x org-capturedisplay the capture templates menu
C-c C-c (org-capture-finalize)resume at previous location
C-c C-w (org-capture-refile)refile the note to a different place
C-c C-k (org-capture-kill)abort capture & resume at previous location
C-u M-x org-capturevisit the target location of a capture template
C-u C-u M-x org-capturevisit the last stored capture item in its buffer

 

-- Others --

org-capture-goto-last-stored


  interactive compiled Lisp function

  takes user to the location where the last capture note was store

org-capture


  is an interactive compiled Lisp function: (- org-capture &optional GOTO
  KEYS) used to capture something

  This will let you select a template from '- org-capture-templates', and then
  file the newly captured information.

  The text is immediately inserted at the target location, and an indirect buffer
  is shown where you can edit it.

  Pressing 'C-c C-c' brings you back to the previous state of Emacs, so that you
  can continue your work.

  When called interactively with a 'C-u' prefix argument GOTO, don’t capture
  anything, just go to the file/headline where the selected template stores its
  notes.

  With a 'C-u C-u' prefix argument, go to the last note stored.

  When called with a 'C-0' (zero) prefix, insert a template at point.

  When called with a 'C-1' (one) prefix, force prompting for a date when a
  datetree entry is made.

  ELisp programs can set KEYS to a string associated with a template in '-
  org-capture-templates'. In this case, interactive selection will be bypassed.

  If '- org-capture-use-agenda-date' is non-nil, capturing from the agenda will
  use the date at point as the default date. Then, a 'C-1' prefix will tell the
  capture process to use the HH:MM time of the day at point (if any) or the
  current HH:MM time.

org-capture-finalize


  is an interactive compiled Lisp function: (- org-capture-finalize &optional
  STAY-WITH-CAPTURE) to finalize the capture process

  with prefix argument STAY-WITH-CAPTURE, jump to the location of the captured
  item after finalizing

org-capture-goto-last-stored


  is an interactive compiled Lisp function: (- org-capture-goto-last-stored)

  go to the location where the last capture note was stored

org-capture-goto-target


  is an interactive compiled Lisp function: (- org-capture-goto-target
  &optional TEMPLATE-KEY)

  go to the target location of a capture template. The user is queried for the
  template

org-capture-kill


  is an interactive compiled Lisp function: (- org-capture-kill)

  abort the current capture process

org-capture-mode


  is an interactive compiled Lisp function: (- org-capture-mode &optional ARG)

  is a minor mode for special key bindings in a capture buffer

  turning on this mode runs the normal hook '- org-capture-mode-hook'

org-capture-refile


  is an interactive compiled Lisp function: (- org-capture-refile)

  finalize the current capture and then refile the entry

  refiling is done from the base buffer, because the indirect buffer is then
  already gone any prefix argument will be passed to the refile command

org-capture-string


  is an interactive compiled Lisp function: (- org-capture-string STRING
  &optional KEYS)

  capture STRING with the template selected by KEYS

 

-- Customizing Capture --

 

Change Where Notes Are Stored


  (setq org-default-notes-file "~/pathname/filename.org")

 

Customize The Templates

Each has at least 3 parts.

  1. a key binding to select a particular template
  2. a destination file, and sections in that file, like heading, sub-heading, list item, etc
  3. a formatting template to handle routine details

 

Template Customizing By Example

The following adds a "w" (work-related) task in addition to the "t" (task)


  (add-to-list 'org-capture-templates
                   '("w" "Work-related Task"  entry
                     (file "~/pathname/notes/work.org")
                     " TODO %?" :empty-lines 1))

and the following re-adds the default, so both the "t" option and the "w" option show up


  (add-to-list 'org-capture-templates
                   '("t" "Personal Task"  entry
                     (file org-default-notes-file)
                     " TODO %?" :empty-lines 1))

 

Using More Than One Template

(from Org Manual 9.5, 10.1.3 Capture templates p107-113)

One template is for general TODO entries.
     under the heading 'Tasks'
     filed at '~/org/gtd.org'
     its hotkey is "t"

The other is for capturing journal entries.
     in a "date tree"
     filed at '~/../journal.org'
     its hotkey is "j"

Pressing "t" from the capture menu has Org create a task entry for a "TODO" item. Likewise for "j" and corresponding "journal" entries.

 

Org Documentation For Template Customizing

The text block below is exactly what emacs presents when user runs "M-x org-capture" and selects "C" for "customize".

The bits in "[Brackets]" below are displayed by emacs as its version of buttons (just so you know).


  For help using this buffer, see Easy Customization in the Emacs manual.

                                            [Search]

  Operate on all settings in this buffer:
  [Revert...]  [Apply]  [Apply and Save]

   Org Capture Templates:
  [INS]
     [State] : STANDARD.
     Templates for the creation of new entries. Hide

     Each entry is a list with the following items:

     keys         The keys that will select the template, as a string, characters
                  only, for example "a" for a template to be selected with a
                  single key, or "bt" for selection with two keys.  When using
                  several keys, keys using the same prefix key must be together
                  in the list and preceded by a 2-element entry explaining the
                  prefix key, for example

                          ("b" "Templates for marking stuff to buy")

                  The "C" key is used by default for quick access to the
                  customization of the template variable.  But if you want to use
                  that key for a template, you can.

     description  A short string describing the template, will be shown during
                  selection.

     type         The type of entry.  Valid types are:
                    entry       an Org node, with a headline.  Will be filed
                                as the child of the target entry or as a
                                top-level entry.
                    item        a plain list item, will be placed in the
                                first plain list at the target
                                location.
                    checkitem   a checkbox item.  This differs from the
                                plain list item only is so far as it uses a
                                different default template.
                    table-line  a new line in the first table at target location.
                    plain       text to be inserted as it is.

     target       Specification of where the captured item should be placed.
                  In Org files, targets usually define a node.  Entries will
                  become children of this node, other types will be added to the
                  table or list in the body of this node.

                  Most target specifications contain a file name.  If that file
                  name is the empty string, it defaults to 'org-default-notes-file'.
                  A file can also be given as a variable or as a function called
                  with no argument.  When an absolute path is not specified for a
                  target, it is taken as relative to 'org-directory'.

                  Valid values are:

                  (file "path/to/file")
                      Text will be placed at the beginning or end of that file

                  (id "id of existing Org entry")
                      File as child of this entry, or in the body of the entry

                  (file+headline "path/to/file" "node headline")
                      Fast configuration if the target heading is unique in the file

                  (file+olp "path/to/file" "Level 1 heading" "Level 2" ...)
                      For non-unique headings, the full outline path is safer

                  (file+regexp  "path/to/file" "regexp to find location")
                      File to the entry matching regexp

                  (file+olp+datetree "path/to/file" "Level 1 heading" ...)
                      Will create a heading in a date tree for today’s date.
                      If no heading is given, the tree will be on top level.
                      To prompt for date instead of using TODAY, use the
                      :time-prompt property.  To create a week-tree, use the
                      :tree-type property.

                  (file+function "path/to/file" function-finding-location)
                      A function to find the right location in the file

                  (clock)
                     File to the entry that is currently being clocked

                  (function function-finding-location)
                     Most general way: write your own function which both visits
                     the file and moves point to the right location

     template     The template for creating the capture item.  If you leave this
                  empty, an appropriate default template will be used.  See below
                  for more details.  Instead of a string, this may also be one of

                      (file "/path/to/template-file")
                      (function function-returning-the-template)

                  in order to get a template from a file, or dynamically
                  from a function.

     The rest of the entry is a property list of additional options.  Recognized
     properties are:

      :prepend            Normally newly captured information will be appended at
                          the target location (last child, last table line,
                          last list item...).  Setting this property will
                          change that.

      :immediate-finish   When set, do not offer to edit the information, just
                          file it away immediately.  This makes sense if the
                          template only needs information that can be added
                          automatically.

      :jump-to-captured   When set, jump to the captured entry when finished.

      :empty-lines        Set this to the number of lines the should be inserted
                          before and after the new item.  Default 0, only common
                          other value is 1.

      :empty-lines-before Set this to the number of lines the should be inserted
                          before the new item.  Overrides :empty-lines for the
                          number lines inserted before.

      :empty-lines-after  Set this to the number of lines the should be inserted
                          after the new item.  Overrides :empty-lines for the
                          number of lines inserted after.

      :clock-in           Start the clock in this item.

      :clock-keep         Keep the clock running when filing the captured entry.

      :clock-resume       Start the interrupted clock when finishing the capture.
                          Note that :clock-keep has precedence over :clock-resume.
                          When setting both to t, the current clock will run and
                          the previous one will not be resumed.

      :time-prompt        Prompt for a date/time to be used for date/week trees
                          and when filling the template.

      :tree-type          When 'week', make a week tree instead of the month tree.

      :unnarrowed         Do not narrow the target buffer, simply show the
                          full buffer.  Default is to narrow it so that you
                          only see the new stuff.

      :table-line-pos     Specification of the location in the table where the
                          new line should be inserted.  It should be a string like
                          "II-3", meaning that the new line should become the
                          third line before the second horizontal separator line.

      :kill-buffer        If the target file was not yet visited by a buffer when
                          capture was invoked, kill the buffer again after capture
                          is finalized.

     The template defines the text to be inserted.  Often this is an
     Org mode entry (so the first line should start with a star) that
     will be filed as a child of the target headline.  It can also be
     freely formatted text.  Furthermore, the following %-escapes will
     be replaced with content and expanded:

       %[pathname] Insert the contents of the file given by
                   'pathname'.  These placeholders are expanded at the very
                   beginning of the process so they can be used to extend the
                   current template.
       %(sexp)     Evaluate elisp '(sexp)' and replace it with the results.
                   Only placeholders pre-existing within the template, or
                   introduced with %[pathname] are expanded this way.  Since this
                   happens after expanding non-interactive %-escapes, those can
                   be used to fill the expression.
       %<...>      The result of format-time-string on the ... format specification.
       %t          Time stamp, date only.  The time stamp is the current time,
                   except when called from agendas with 'M-x org-agenda-capture' or
                   with 'org-capture-use-agenda-date' set.
       %T          Time stamp as above, with date and time.
       %u, %U      Like the above, but inactive time stamps.
       %i          Initial content, copied from the active region.  If %i is
                   indented, the entire inserted text will be indented as well.
       %a          Annotation, normally the link created with 'org-store-link'.
       %A          Like %a, but prompt for the description part.
       %l          Like %a, but only insert the literal link.
       %c          Current kill ring head.
       %x          Content of the X clipboard.
       %k          Title of currently clocked task.
       %K          Link to currently clocked task.
       %n          User name (taken from the variable 'user-full-name').
       %f          File visited by current buffer when org-capture was called.
       %F          Full path of the file or directory visited by current buffer.
       %:keyword   Specific information for certain link types, see below.
       %^g         Prompt for tags, with completion on tags in target file.
       %^G         Prompt for tags, with completion on all tags in all agenda files.
       %^t         Like %t, but prompt for date.  Similarly %^T, %^u, %^U.
                   You may define a prompt like: %^{Please specify birthday}t.
                   The default date is that of %t, see above.
       %^C         Interactive selection of which kill or clip to use.
       %^L         Like %^C, but insert as link.
       %^{prop}p   Prompt the user for a value for property 'prop'.
       %^{prompt}  Prompt the user for a string and replace this sequence with it.
                   A default value and a completion table ca be specified like this:
                   %^{prompt|default|completion2|completion3|...}.
       %?          After completing the template, position cursor here.
       %\1 ... %\N Insert the text entered at the nth %^{prompt}, where N
                   is a number, starting from 1.

     Apart from these general escapes, you can access information specific to the
     link type that is created. For example, calling 'org-capture' in emails or in
     Gnus will record the author and the subject of the message, which you can
     access with "%:from" and "%:subject", respectively. Here is a complete list
     of what is recorded for each link type.

     Link type               |  Available information
     ------------------------+------------------------------------------------------
     bbdb                    |  %:type %:name %:company
     vm, wl, mh, mew, rmail, |  %:type %:subject %:message-id
     gnus                    |  %:from %:fromname %:fromaddress
                             |  %:to   %:toname   %:toaddress
                             |  %:fromto (either "to NAME" or "from NAME")
                             |  %:date %:date-timestamp (as active timestamp)
                             |  %:date-timestamp-inactive (as inactive timestamp)
     gnus                    |  %:group, for messages also all email fields
     eww, w3, w3m            |  %:type %:url
     info                    |  %:type %:file %:node
     calendar                |  %:type %:date

     When you need to insert a literal percent sign in the template,
     you can escape ambiguous cases with a backward slash, e.g., \%i.
  Groups: Org Capture

And that is all we have for today.

 


See tabs at the top for definitions and books.
Have anything worth adding? Then try sosayseff+nosey@nullabigmail.com
Me? Recently confused by life. Like starting in kindergarten.

Wednesday, February 23, 2022

Sorting Org-Mode Tables

Start with any old table containing data.


  | fi     | fi     | fo    | fum |  
  | doodle | doodle | doole | dum |  
  | one    | fi     | fo    | fum |  
  | three  | fi     | fo    | fum |  
  | 7      | fi     | fo    | fum |  
  | cero   | fi     | fo    | fum |  

Say you want to sort it. Hmmm.

OK. So, to do that...

Put the cursor into the target column.

Press "C-c ^"

Follow the prompts to get the right sort of sort, which can be one of...

[a]lphabetic
[A]lphabetic (reverse)
[n]umeric
[N]umeric (reverse)
[t]ime (old to new)
[T]ime (new to old)

 

  
  Alphabetic Sort On First Column
  | 7      | fi     | fo    | fum |
  | cero   | fi     | fo    | fum |
  | doodle | doodle | doole | dum |
  | fi     | fi     | fo    | fum |
  | one    | fi     | fo    | fum |
  | three  | fi     | fo    | fum |

 

  
  Reverse Alphabetic Sort
  | three  | fi     | fo    | fum |
  | one    | fi     | fo    | fum |
  | fi     | fi     | fo    | fum |
  | doodle | doodle | doole | dum |
  | cero   | fi     | fo    | fum |
  | 7      | fi     | fo    | fum |
            

 

  
  Numeric Sort On First Column
  | fi     | fi     | fo    | fum |
  | doodle | doodle | doole | dum |
  | one    | fi     | fo    | fum |
  | three  | fi     | fo    | fum |
  | cero   | fi     | fo    | fum |
  | 7      | fi     | fo    | fum |
  

 

  
  Reverse Numeric Sort
  | 7      | fi     | fo    | fum |
  | fi     | fi     | fo    | fum |
  | doodle | doodle | doole | dum |
  | one    | fi     | fo    | fum |
  | three  | fi     | fo    | fum |
  | cero   | fi     | fo    | fum |
  

Pretty cool.

Inspiration from "Pragmatic Emacs", Sorting An Org-Mode Table

 


See tabs at the top for definitions and books.
Have anything worth adding? Then try sosayseff+nosey@nullabigmail.com
Me? Don't remember.

Wednesday, February 16, 2022

Table Me

Well then, I'm learning all about Emacs Org-Mode. It's fun.

I'm a relative newcomer to Emacs, having first installed it on Windows in 1998. And having used it since, almost daily, as they say, but now it's time to make it whistle. I could say "make it sing", but I'm not sure I'll live that long, so a little toot is all I'm hoping for.

One thing about Emacs though — the deeper you get into it, the harder it is to back out. And the more sense it makes. That's two things, not one, which is not unusual in the Emacs world, so I guess that might be a good sign.

Org-Mode can do handy things with tables, and it isn't that hard to make happen. Here is a quick howto.

Method 01

  • Start with a one-line grid of data. Let's say in "n" different categories.
  • Manually separate each category with "|" characters, with one at the start of the line and another at the end of the line, and another between categories.
  • When you arrive at the end of the line, press "TAB", not "RETURN".
  • You now have a one-row, n-column table, where the last entry is the "nth" and comes before the line-ending "|", and a new, empty row below that.
  • Continue with this until you are done entering data.
  • You now have a table with column separators but no row separators.

  
  Let's do one row by two columns.
  |   |   |

  Add another row by hitting "TAB" at the end of
  the first line.
  |   |   |
  |   |   |

  Add row separators and another line.
  |---+---|
  |   |   |
  |---+---|
  |   |   |
  |   |   |

You can add row separators by pressing "TAB" to convert a line beginning with "|-" to a horizontal row separator, or you can put the cursor on a table row and press "C-c -" to do the same. ("C-c -" means "press and hold the control key while pressing 'c', then press '-'.")

Method 02

  • Start by finding an empty region of the buffer you're in. (You'll need a bit of free space for the table.)
  • Press "C-c |".
  • Emacs prompts for the table size (like "5x2")
  • Use default if that works, or enter the size you'll need.
  • I normally start with one row and "n" columns, where "n" is, of course, how many columns I'll be needing. So if it's three columns, I'll press "3x1", and then "RETURN", and have a one-row by three-column empty table.
  • So then, go ahead and press "RETURN".
  • Emacs creates your table with the number of columns and rows that you specified.
  • Then enter data, pressing "TAB" at the end of each row to get a new row below it. Until you've had enough.

So...you get the same thing...


  One row by two columns again.
  |   |   |

  Add another row by hitting "TAB" at the end of
  the first line, again.
  |   |   |
  |   |   |

  And then add row separators and another line.
  |---+---|
  |   |   |
  |---+---|
  |   |   |
  |   |   |

Method 03

This uses the "M-x org-table-create-or-convert-from-region", where you press and hold the "ALT" key while pressing "x", then enter "org-table-create-or-convert-from-region". Yeah, right. For Emacs, the "ALT" key is called "M", a leftover from the olden days.

  • Start with a grid of delimited data.
  • Delimiters can be
    • A single space between columns, with no spaces in the data.
    • Commas, preferably "comma + onespace".
    • Anything else that's consistent and clear and the same throughout the data grid.
  • Select the region. (If you don't know how to do this, then look it up.)
  • Press "C-c |".
  • Boom — you have your table.

So, let's try that then.


  Get some "data" to convert...

  fi fi fo fum
  doodle doodle doole dum

  Then select the region and press "C-c |"...

  | fi     | fi     | fo    | fum |
  | doodle | doodle | doole | dum |

  ...and you've got your table.

Note: This works if you have at least two lines of data to convert. Don't count on it working for only one line of data.

I'll get to another, more involved method later.

This post is based on info from Pragmatic Emacs: "Org-mode basics II: use simple tables in your notes."

 


See tabs at the top for definitions and books.
Have anything worth adding? Then try sosayseff+nosey@nullabigmail.com
Me? All too often tabled.

Wednesday, January 19, 2022

It's About Time

So far it's working.

I'm timing myself.

I have a giant todo list that has its own pet todo lists, and sometimes they fight. Sometimes not, but anyway it's a real mess, and mostly I have been ignoring it except to add more things and feel guilty about it all. That's unproductive.

Really, though, I don't need to be productive. I answer to no one no more, nohow, aside from paying my rent on time. Once I do that I can go back to trimming my nose hairs and napping, but. But. But it ain't a life, and I need one.

So one thing I'm doing is sitting here with the intention of relearning/seriously learning "Computer Science", that mis-named discipline. For something to do. Because when you get to the point that you don't need to have anything to do, you do. Life has to have a purpose of some kind, so I invented one. It's a thing. Lots of people find out about it once they've reached their goal in life. "So what now, eh?" You need something. You can't just stand there and wait.

I heard an interview with John McPhee not that long ago, in which he said that he's got a project started that will out live him, that when you get to a certain age and a certain mostly-independent time of life, you need that. Something monumental, a mission that gives you something to struggle with and against. Something that you can't possibly finish in the time you have. So you can feel right and proper about yourself and about life.

What you do is to find something you are seriously interested in, and commit, and see if you can, in any way possible, complete the task even though it's impossible. That way you never need to worry about what you're going to do today or why you're still here, or what the meaning of life is, or whether you should have a third beer with lunch and sleep away yet another afternoon because now you have A Plan and can't get away with aimless drifting any more. You have a goal, a mission, a purpose, a challenge.

Stuff like that.

And then I saw Plan, do, learn: My admittedly hardcore work routine
by Channing Allen. Bingo. Now I've got a thing. A mission and a thing. A thing that has been helping me to have fun and also to be focused. So far it's working.

Every day, instead of looking at my todo list and feeling that it's becoming more and more like a predator and more like I'm the prey, I decide on three or four things that Must Get Done today if I'm to have any self-respect and deal with whatever it is that needs attention, and not just my personal goal-things, but things that really do need attention. (Taxes, voting, other financial items, and so on.)

So I decide on several of today's things, guess how long they'll take, and set aside time. For things that cannot possibly be finished today, I at least will have scheduled a definite amount of work time to devote to them.

Then I start.

I pick one item and set a timer. I see how far I can get in the amount of time I have, and when the timer goes off I stop. Stop and take a break and go on to the next thing, and, and. And I'm getting more done, and making more progress on those things that can't get done today but which need attention.

OK so far. Worth a look.

 


See tabs at the top for definitions and books.
Have anything worth adding? Then try sosayseff+nosey@nullabigmail.com
Me? Bought a three-stringed nose. Planning on taking up picking.

Saturday, January 8, 2022

Org Exporting

I'll get to the why and wherefore later. Now I'm documenting where I actually ended up and what I ended up with.

Emacs Org-Mode is not explained here, just how I export a document to HTML.

HOW TO EXPORT

First, choose whether to use the "Custom" or "Generic" process.

PART 1: MY CUSTOM PROCESS.

My "custom" process is what I will be using most or all of the time. All I need to do is to drop it into my target file and go with that.

I have several files pre-written and stored in their own directory:

  • custom.css
  • html-export-header
  • postamble-css.css

(1) Drop the following "html-export-header" into the top of the org file to export:

# custom default org headers 2022-01-02
#+TITLE: Custom Header for HTML Exporting
#+DATE: 9999-99-99
#+AUTHOR:
#+LANGUAGE: en
#+OPTIONS: H:6
#+OPTIONS: html-postamble:auto
#+OPTIONS: html-preamble:nil
#+OPTIONS: html-style:t
#+OPTIONS: num:0
#+HTML_CONTAINER: div
#+HTML_DOCTYPE: html5
#+HTML_HEAD:
#+HTML_HEAD:

Set the following to suit your needs:

#+TITLE: Custom Header for HTML Exporting
#+DATE: 9999-99-99
#+AUTHOR:

Caveats:

(a) Be sure to include "#+OPTIONS: html-style:t"

(b) Put it ahead of links to the custom css. It is needed to produce correct formatting for any items not covered in the custom css, like centering, which depending on "org-center" being defined.

(2) Add the CSS. It is at the bottom of this post. It is longish.

 

PART 2: A GENERIC PROCESS

(1) Insert the standard default templates this way:

Use the "HTML template" command: C-c C-e # h (or M-x org-export-insert-default-template RET html RET)

Then use the "default template" command: C-c C-e # d (or M-x org-export-insert-default-template RET default RET)

(2) Customize the inserted templates

Edit the options to match the current requirements. (Note: All of these options are listed in the "Org-Mode Manual".

Custom CSS Examples Using Org-Mode "Options"

Turn off the default "htmlize" styling:
#+OPTIONS: html-style:nil [ It is an option, but don't use it — see below. ]

Link to a custom CSS file:
#+HTML_HEAD:
#+HTML_HEAD_EXTRA:

Link to an external stylesheet:
#+HTML_HEAD:

Embed a 'style' section (such as the postamble problem):
#+HTML_HEAD:

Custom HTML Option Examples

Ensure that these are set, and manually add if needed, below the defaults
#+HTML_DOCTYPE: html5
#+HTML_CONTAINER: div

Manually add the following lines below the defaults and before the text to export. Ignore any obscure options inserted by 'default' and 'html'. These can be fine tuned with time and experience.
#+OPTIONS: html-style:t
#+OPTIONS: html-postamble:auto
#+OPTIONS: html-preamble:nil
#+OPTIONS: num:0
#+HTML_HEAD: [ Using the correct css path name ]
#+HTML_HEAD:
#+HTML_HEAD:

(3) Template Activation (optional).

Note: The export options are parsed and activated at only two times:

  • On startup (when the file is opened), or
  • Manually, by
    • Placing point on one of the template lines, and
    • Pressing C-c C-c

On success, the confirmation message is: "Local setup has been refreshed".

(4) Remove cruft from top of file.

For example, I include the following in my Org-Mode files:

  • org-to-html.org [ The filename. ]
  • #+STARTUP: hideblocks [ Controls the display of comment blocks and so on. ]
  • #+STARTUP: overview [ Controls the display of Org-Mode headings v content. ]

Change filename to "#+TITLE: <filename-or-title>" (whatever is right for a title).

Delete the other two

Etc.

(5) Run the export process (Org to HTML): "C-c C-e h h"

 

Custom CSS Follows:



/* CSS based on Derek Taylor DistroTube CSS
from https://distro.tube/org-html-themes/src/readtheorg_theme/css/readtheorg.css
*/

html{
font-size: 100%;
height: 100%;
overflow-x: hidden;
}

body{
background-color: #ffffff;
color: #000000;
font-family: "DejaVu Sans", Verdana, Arial, sans-serif;
font-weight: normal;
margin: 0;
min-height: 100%;
overflow-x: hidden;
}

#content{
background-color: #ffffff;
height: 100%;
margin-left: 15em;
padding: 1.618em 3.236em;
width: 80%;
}

.banner {
border-right: 94px solid #111111;
}

h1,h2,h3,h4,h5,h6,legend{
font-family: "DejaVu Sans", Verdana, Arial, sans-serif;
font-weight: bold;
margin: 1em 0;
}

h2,h3,h4,h5,h6{
border: 1px dotted #913e0b;
border-radius: 5px;
padding: .1em 0 .1em .1em;
}

h2,h3,h4,h5,h6{
background-color: #ffffff;
}


h1{ background-color: #913e0b;
margin: -.8em 0 0 -3em;
padding: .15em 0 .15em 0;
text-align: center;
width: 120%;
}

/* HEADERS */
h1{ color: #ffffff; }

h2{
margin-top: 2em;
background-color: #eeeeee;
color: #510048;
}

h3{
margin-top: 3em;
color: #133d58;
}

h4{
color: #164766;
}

h5{
color: #195074;
}

h6{
color: #1c5a82;
}

h1{ font-size: 2em; }
h2{ font-size: 2em; }
h3{ font-size: 1.7em; }
h4{ font-size: 1.4em; }
h5{ font-size: 1.1em; }
h6{ font-size: .9em; }

.subtitle{
font-size: 95%; /* 95% of h1 */
}

.title{font-size: 2em;} /* is also h1 anyway */

p{
font-size: 1em;
line-height: 1.25em;
margin: 0px 0px 24px 0px;
}

b,strong{
font-weight: bold}

blockquote{
color: #000000;
background-color: #dddddd;
border-left: 6px solid #ecbe7b;
font-style: italic;
line-height: 24px;
margin: 0px 0px 24px 0px;
padding: 8px 20px 2px 20px;
}

i{
color: #000000;
}

ul,ol,dl{
line-height: 24px;
list-style-image: none;
list-style: disc;
margin: 0px 0px 24px 0px;
padding: 0;
}

li{
margin-left: 24px;
}

dd{
margin: 0;
}

#content .section ul,#content .toctree-wrapper ul,article ul{
list-style: disc;
line-height: 24px;
margin-bottom: 24px}

#content .section ul li,#content .toctree-wrapper ul li,article ul li{
list-style: disc;
margin-left: 24px}

#content .section ul li p:last-child,#content .toctree-wrapper ul li p:last-child,article ul li p:last-child{
margin-bottom: 0}

#content .section ul li ul,#content .toctree-wrapper ul li ul,article ul li ul{
margin-bottom: 0}

#content .section ul li li,#content .toctree-wrapper ul li li,article ul li li{
list-style: circle}

#content .section ul li li li,#content .toctree-wrapper ul li li li,article ul li li li{
list-style: square}

#content .section ul li ol li,#content .toctree-wrapper ul li ol li,article ul li ol li{
list-style: decimal}

#content .section ol,#content ol,article ol{
list-style: decimal;
line-height: 24px;
margin-bottom: 24px}

#content .section ol li,#content ol li,article ol li{
list-style: decimal;
margin-left: 24px}

#content .section ol li p:last-child,#content ol li p:last-child,article ol li p:last-child{
margin-bottom: 0}

#content .section ol li ul,#content ol li ul,article ol li ul{
margin-bottom: 0}

#content .section ol li ul li,#content ol li ul li,article ol li ul li{
list-style: disc}

dl dt{
font-weight: bold;
}

dl p,dl table,dl ul,dl ol{
margin-bottom: 12px !important;
}

dl dd{
margin: 0 0 12px 24px;
}

code{
background:#bcff0f;
border: solid 1px #7bb231;
color: #000;
font-family: "Liberation Mono", monospace;
font-size: 90%;
max-width: 100%;
overflow-x: auto;
padding: 0 5px;
white-space: nowrap;
}

.codeblock-example{
border: 1px solid #e1e4e5;
border-bottom: none;
padding: 24px;
padding-top: 48px;
font-weight: 500;
background-color: #eeeeee;
position: relative;
}

.codeblock-example:after{
content: "Example";
position: absolute;
top: 0px;
left: 0px;
background-color: #eeeeee;
color: #000000;
padding: 6px 12px;
}

.codeblock-example.prettyprint-example-only{
border: 1px solid #e1e4e5;
margin-bottom: 24px;}

.codeblock,pre.src,#content .literal-block{
border: 1px solid #e1e4e5;
padding: 12px;
overflow-x: auto;
background: #eeeeee;
margin: 1px 0 24px 0;}

pre.src{
color: #000000;
display: block;
font-family: "Liberation Mono", monospace;
font-size: 12px;
font-size: 1em;
font-size: .9em;
line-height: 1.5;
margin: 1px 0px 24px 0px;
overflow: auto;
padding: 12px;
white-space: pre;
}

.example{
background:#f3f6f6;
border: 1px solid #e1e4e5;
color: #000000;
font-size: 1.15em;
line-height: 1.25;
margin-bottom: 24px;
padding: 12px;
}

table{
border-bottom: 1px solid #e1e4e5;
border-collapse: collapse;
border-spacing: 0;
empty-cells: show;
margin-bottom: 24px;
width: 100%;
}

td{
vertical-align: top}

table td,table th{
background-color: #eeeeee;
border: 1px solid #282c34;
font-size: 1em;
margin: 0;
overflow: visible;
padding: 8px 16px;
}

table thead th{
font-weight: bold;
border-top: 3px solid #51afef;
border-bottom: 1px solid #1c1f24;
}

table caption{
color: #000;
font: italic 85%/1 arial,sans-serif;
padding: 1em 0;
}

table tr:nth-child(2n-1) td{
background-color: #eeeeee;
}

table tr:nth-child(2n) td{
background-color: #eeeeee;
}

.figure p{
color: #000;
font: italic 85%/1 arial,sans-serif;
padding: 0px;
}

.rotate-90{
transform: rotate(90deg);
}

.rotate-270{
transform: rotate(270deg);
}

#toggle-sidebar, table-of-contents .close-sidebar { display: none; }

*{
box-sizing: border-box;
}

figcaption,figure,footer,header,hgroup,nav{
display: block}

ins{
background:#ff9;
color: #000;
text-decoration: none}

mark{
background:#ff0;
color: #000;
font-style: italic;
font-weight: bold}

small{
font-size: 85%}

sub,sup{
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline}

sup{
top: -0.5em}

sub{
bottom: -0.25em}

img{
-ms-interpolation-mode: bicubic;
vertical-align: middle;
max-width: 100%
}

svg:not(:root){
overflow: hidden}

figure{
margin: 0
}

label{
cursor: pointer
}

legend{
border: 0;
margin-left: -7px;
padding: 0;
white-space: normal
}

.nav #content .admonition-title,#content .nav .admonition-title,.nav .icon{
display: inline
}

.wy-alert,#content .note,#content .attention,#content .caution,#content .danger,#content .error,#content .hint,#content .important,#content .tip,#content .warning,#content .seealso,#content .admonitiontodo{
padding: 12px;
line-height: 24px;
margin-bottom: 24px;
}

.wy-alert-title,#content .admonition-title{
color: #000000;
font-weight: bold;
display: block;
color: #000000;
padding: 6px 12px;
margin-bottom: 0px;
}

#content .danger,#content .error{
background: #fdf3f2;
}

.wy-alert.wy-alert-warning,#content .wy-alert-warning.note,#content .attention,#content .caution,#content .wy-alert-warning.danger,#content .wy-alert-warning.error,#content .wy-alert-warning.hint,#content .wy-alert-warning.important,#content .wy-alert-warning.tip,#content .warning,#content .wy-alert-warning.seealso,#content .admonitiontodo{
background:#ffedcc;
}

#content .admonition-title.note:before, #content .admonition-title.seealso:before,
#content .admonition-title.warning:before, #content .admonition-title.caution:before,
#content .admonition-title.attention:before,
#content .admonition-title.tip:before, #content .admonition-title.hint:before,
#content .admonition-title.important:before,
#content .admonition-title.error:before, #content .admonition-title.danger:before{
font-family: "DejaVu Sans", Verdana, Arial, sans-serif;
content: "";}

#content .note,#content .seealso{
background:#e7f2fa}

.wy-alert p:last-child,#content .note p:last-child,#content .attention p:last-child,#content .caution p:last-child,#content .danger p:last-child,#content .error p:last-child,#content .hint p:last-child,#content .important p:last-child,#content .tip p:last-child,#content .warning p:last-child,#content .seealso p:last-child,#content .admonitiontodo p:last-child{
margin-bottom:0}

#content .admonition-title.tip,#content .admonition-title.important,#content .admonition-title.hint{
line-height: 1;
background-color: #ffffff;
}

#content .important,#content .tip,#content .hint{
background: #dbfaf4}

#content .admonition-title.note,#content .admonition-title.seealso{
line-height: 1;
background: #6ab0de}

#content .admonition-title.warning,#content .admonition-title.caution,#content .admonition-title.attention{
line-height: 1;
background: #F0B37E}

#content .admonition-title.error,#content .admonition-title.danger{
line-height: 1;
background: #f29f97}

legend{
display: block;
width: 100%;
border: 0;
padding: 0;
white-space: normal;
margin-bottom: 24px;
font-size: 150%;
*margin-left: -7px}

label{
display: block;
margin: 0 0 0.3125em 0;
color: #333;
font-size: 90%}

a{
color: #0000ff;
text-decoration: none;
cursor: pointer;}

a:hover, a:active{
outline: 0;
font-style: normal;
padding: .1em .3em .1em .3em;
}

a:visited{
color: #777777;
}

a:hover{
color: #ffffff;
background-color: #dd0000;
}

.org-left a {
color: #51afef;
}

.left{
text-align: left;}

.center{
text-align: center;}

.right{
text-align: right;}

hr{
display: block;
height: 1px;
border: 0;
border-top: 1px solid #000000;
margin: 24px 0;
padding: 0;
}

#table-of-contents li{
list-style: none;
margin-left: 0px;
}

#table-of-contents header{
color: #2980B9;
display: block;
display: inline-block;
font-size: 80%;
font-weight: bold;
height: 32px;
line-height: 32px;
padding: 0 1.618em;
text-transform: uppercase;
white-space: nowrap;
}

#table-of-contents ul{
margin-bottom: 0;}

#table-of-contents li.divide-top{
border-top: solid 1px #404040;}

#table-of-contents li.divide-bottom{
border-bottom: solid 1px #404040;}

#table-of-contents li.current{
background:#e3e3e3;}

#table-of-contents li.current a{
color: #000000;
border-right: solid 1px #c9c9c9;
padding: 0.4045em 2.427em;}

#table-of-contents li.current a:hover{
background-color: #dd0000;
color: #cccccc;
color: #ffffff; /* changed 2021-11-29 */
}

#table-of-contents li a{
border: none;
color: #dddddd;
color: #ffffff; /* changed 2021-11-29 */
position: relative;
}

#table-of-contents li.on a:hover, #table-of-contents li.current>a:hover{
background:#fcfcfc;}

#table-of-contents li ul li a{
padding: 0.4045em 2.427em;}

#table-of-contents li ul li ul li a{
padding: 0.4045em 3.236em;}

#table-of-contents li.current ul{
display: block;}

#table-of-contents .local-toc li ul{
display: block;}

#table-of-contents li ul li a{
margin-bottom: 0;
color: #cccccc;
color: #dddddd; /* changed 2021-11-29 */
font-weight: normal;
}

#table-of-contents a{
display: inline-block;
line-height: 18px;
padding: 0.4045em 1.618em;
display: block;
position: relative;
font-size: 90%;
color: #000000;
direction: ltr;
}

#table-of-contents a:hover{
background-color: #dd0000;
background-color: #20638f; /* changed 2021-11-29 */
color: #ffffff;
cursor: pointer;
font-style: normal; /* changed 2021-11-29 */
font-style: italic;
}

/* TOC main: the whole sidebar */
#table-of-contents{
background-color: #913e0b;
font-size: .9em; /* toc table-of-contents font-size */
height: 100%;
left: 0;
overflow-x: hidden;
overflow-y: scroll;
position: fixed;
scrollbar-arrow-color: #b3b3b3;
scrollbar-base-color: #1F1D1D;
scrollbar-shadow-color: #1F1D1D;
scrollbar-track-color : #343131;
top: 0;
width: 17em;
}

/* TOC header label */
#table-of-contents h2{
background-color: #20638f;
color: #ffffff;
display: block;
font-size: 100%;
margin-bottom: 1em;
margin-top: -.3em;
padding: 1.18em;
text-align: center;
}

ul.nav > li ul {
display: none;
}

li.active {
background-: #e3e3e3;
}

li.active>a {
color: black !important;
}

ul.nav>li.active a {
color: #404040 !important;
}

ul.nav>li.active li.active {
background-color: #c9c9c9;
}

ul.nav>li.active li.active>a {
color: black !important;
border-right: solid 1px #c9c9c9 !important;
font-weight: bold !important;
display: block !important;
}

ul.nav>li.active>a {
background-color: #fcfcfc;
color: black !important;
border-bottom: solid 1px #c9c9c9 !important; /* XXX Restrict it to 2nd level (dave sez no idea - not mine)*/
border-right: solid 1px #c9c9c9 !important;
font-weight: bold !important;
display: block !important;
}

li.active>ul {
display: inline !important;
}

footer{
color: #000000;

footer p{
margin-bottom:12px}

#content img{
max-width: 100%;
}

#content div.figure{
padding: 0px;
margin-bottom: 18px}

#content div.figure.align-center{
text-align: center}

#content .section>img,#content .section>a>img{
margin-bottom: 24px}

.verse{
border-left: 5px solid #6AB0DE;
background-color: #E7F2FA;
padding: 6px 20px;
font-style: italic;
}

#content .note .last,#content .attention .last,#content .caution .last,#content .danger .last,#content .error .last,#content .hint .last,#content .important .last,#content .tip .last,#content .warning .last,#content .seealso .last,#content .admonitiontodo .last{
margin-bottom: 0}

#content .admonition-title:before{
margin-right: 4px}

#content .section ol p,#content .section ul p{
margin-bottom: 12px}

#content h1 .headerlink, #content h2 .headerlink, #content h3 .headerlink, #content h4 .headerlink, #content h5 .headerlink, #content h6 .headerlink, #content dl dt .headerlink{
display: none;
visibility: hidden;
font-size: 14px}

#content h1 .headerlink:after, #content h2 .headerlink:after, #content h3 .headerlink:after, #content h4 .headerlink:after, #content h5 .headerlink:after, #content h6 .headerlink:after, #content dl dt .headerlink:after{
visibility: visible;
content: "";
font-family: "DejaVu Sans", Verdana, Arial, sans-serif;
display: inline-block}

#content h1:hover .headerlink, #content h2:hover .headerlink, #content h3:hover .headerlink, #content h4:hover .headerlink, #content h5:hover .headerlink,#content h6:hover .headerlink, #content dl dt:hover .headerlink{
display: inline-block}

#content .sidebar{
float: right;
width: 40%;
display: block;
margin: 0 0 24px 24px;
padding: 24px;
background: #f3f6f6;
border: solid 1px #e1e4e5}

#content .sidebar p,#content .sidebar ul,#content .sidebar dl{
font-size: 90%}

#content .sidebar .last{
margin-bottom: 0}

#content .sidebar .sidebar-title{
display: block;
font-family: "DejaVu Sans", Verdana, Arial, sans-serif;
font-weight: bold;
background: #e1e4e5;
padding: 6px 12px;
margin: -24px;
margin-bottom: 24px;
font-size: 100%}

#content .highlighted{
background: #F1C40F;
display: inline-block;
font-weight: bold;
padding: 0 6px}

#content .footnote-reference,#content .citation-reference{
vertical-align: super;
font-size: 90%}

span[id*='MathJax-Span']{
color: #404040}

.math{
text-align: center}

#footnotes{
border-top: 1px solid #e1e4e5;
padding-top: 36px;
}

h2.footnotes{
display: none;
}

.footnum, .footref{
color: #2980b9;
font-size: 90%;
font-family: "DejaVu Sans", Verdana, Arial, sans-serif;
}

.footnum:before, .footref:before{
content: "[";
}

.footnum:after, .footref:after{
content: "]";
}

.footpara {
color: #000000;
font-size: 90%;
font-family: "DejaVu Sans", Verdana, Arial, sans-serif;
padding-bottom: 8px;
padding-left: 16px;
padding-right: 16px;
padding-top: 8px;
line-height: 1.25em;
}

.todo{
background-color: #f29f97;
padding: 0px 4px;
color: #000000;
}

.WAIT, .nilWAIT{
background-color: #6AB097;
}

.done{
background-color: #6ab0de;
padding: 0px 4px;
color: #000000;
}

.tag span {
background-color: #EDEDED;
border: 1px solid #EDEDED;
color: #000000;
cursor: pointer;
display: block;
float: right;
font-size: 80%;
font-weight: normal;
margin: 0 3px;
padding: 1px 2px;
border-radius: 10px;
}

.tag .FLAGGED {
background-color: #DB2D27;
border: 1px solid #DB2D27;
color: #000000;
font-weight: bold;
}

.timestamp {
font-family: "Liberation Mono", monospace;
font-size: 90%;
color: navy;
}

.nav .timestamp {
color: inherit;
}

.inlinetask {
background: #FFF9E3;
border: 3px solid #FFEB8E;
padding: 9px 12px;
margin-bottom: 24px;
font-family: "DejaVu Sans", Verdana, Arial, sans-serif;}

 

 

The Postamble.

This is a sort of housekeeping summary. Time, date, author, and so on. I had trouble getting it to show up, so I wrote more CSS for it.

It has a counterpart, the "preamble", which is the same and which, I guess, normally goes at the top of the exported file.

The preamble is not interesting to me, so I focus on the postamble.

 

#postamble {
color: #555555;
font-family: "Liberation Mono", monospace;
font-size: .9em;
font-weight: bold;
margin: 0 0 1em 20em;
}

#postamble p {
margin: 0;
padding: 0;
}

 

 


See tabs at the top for definitions and books.
Have anything worth adding? Then try sosayseff+nosey@nullabigmail.com
Me? Still confused about everything. (The usual.)