#Documentation

2025-05-31

BookStack v25.05 is now here with:

💬 Content comments
🗄️ Comment archiving
📷 AVIF image support
📝 Further WYSIWYG improvements
🎁 + many extra additions & fixes!

bookstackapp.com/blog/bookstac

#SelfHosting #OpenSource #documentation #foss

Dave MasonDaveMasonDotMe
2025-05-30

Periodic Reminder: Documentation is a form of automation. It does the work for 'future you' so you don't have to repeat yourself over and over and over and ...


Programming Quotesprogramming_quotes
2025-05-30

Incorrect documentation is often worse than no documentation.

— Bertrand Meyer

👉Robert :mastodance:RobertRostock@norden.social
2025-05-29

🖼 gallery Mecklenburg-Vorpommern 3/3

📫Last posts / Letzte Beiträge:
luftspiel.de/linktree/

#documentation #Mecklenburg #MecklenburgVorpommern #Village

🔗 Permalink:

luftspiel.de/mecklenburg-vorpo

Mecklenburg-Vorpommern 3/3
👉Robert :mastodance:RobertRostock@norden.social
2025-05-29

🖼 gallery Mecklenburg-Vorpommern 2/3

📫Last posts / Letzte Beiträge:
luftspiel.de/linktree/

#documentation #Mecklenburg #MecklenburgVorpommern #Village

🔗 Permalink:

luftspiel.de/mecklenburg-vorpo

Mecklenburg-Vorpommern 2/3
👉Robert :mastodance:RobertRostock@norden.social
2025-05-29

🖼 gallery Mecklenburg-Vorpommern 1/3

📫Last posts / Letzte Beiträge:
luftspiel.de/linktree/

#documentation #Mecklenburg #MecklenburgVorpommern #Village

🔗 Permalink:

luftspiel.de/mecklenburg-vorpo

Mecklenburg-Vorpommern 1/3
2025-05-29

Krita Quick Commands

I use quick commands a lot in Vivaldi, IDEs, basically any complex app with a lot of commands. They’re a great way to learn what the app can do, an easy way to find less frequently used commands than hunting through a menu, and give you a quick reminder of the command’s keyboard shortcut when you want to learn what that is. I wanted to build a script to add this functionality to the digital painting app Krita. This blog post discusses my journey.

Quick Commands

Here’s what the final result looks like, and you can find the script for it here.

It has a search box where you type roughly what you want, and then it will show the results in a list. You can navigate around using the up and down keys, and when you press enter, your action gets executed. You can press Esc to close it if you decide you don’t want to do anything.

I decided to filter on the command text and the tooltip text for each action,. Most actions don’t have detailed tooltip text in Krita, but some of the more complex or obscure ones do, and this is designed to let you search through them as well in case you can’t remember the exact name of a particular action command. Filtering is done on individual words so if you know you remember two words but not the order they appear in exactly, it will offer some leeway.

I’ve added this script to my Krita setup and given it the shortcut F1. I don’t need a keyboard button to open a webpage that I can keep as a bookmark, and this is much more helpful for quickly accessing different commands.

Writing the Script

Krita’s scripting environment is a bit tricky to use. It has an incredibly basic built-in editor, with an output window when things run. So you are limited to basic print methods for debugging. The scripting tutorials offer a decent introduction, though for anything more complex you will need to look at API documentation. My script builds a simple interface using the PyQt5 library to connect to Krita’s Qt based UI. There are 3 places I looked for documentation:

  • The Krita C++ API – Good documentation from the source code
  • The Qt C++ API – Very detailed, discusses how to use their library
  • The PyQt5 API – This documentation isn’t

My big problem with the PyQt5 library’s documentation is that it’s not really documentation more than it is a list of methods and classes. The vast majority of the text that should explain how it works and how to use it merely contains the text ‘TODO’. Given that Qt5 is being replaced by Qt6, I guess that’s never going to be fixed.

Having done some UI stuff before, figuring out the right widgets to use, and what the methods might mean from context was simple enough, though some explanations or even screenshots would have been nice. I fell back to the Krita extension documentation for advice on how to set up a basic UI, because doing that solely from the PyQt5 documentation was clearly not going to work.

I had not used signals in Python recently, so I needed some help, and the PyQt5 documentation helpfully offered none whatsoever, other than a basic explanation of how to connect things generally. It does have a list of places you can connect to, but no visible examples of how that actually works. Thankfully, the Krita application comes with some built-in extension scripts that demonstrate how to use this, so I was able to learn from there. Presented with an example, I can now see the PyQt5 approach to signals is fairly analogous to how other languages and APIs use listeners:

def onTextChanged(newtext):    ...textbox = QLineEdit()textbox.textChanged.connect(onTextChanged)

A major problem with how the PyQt5 library is set up is that the python packages you need to import from are totally disorganised an unclear. If you want widgets you must import from PyQt5.QtWidgets, but if you want to access enumerated values like keyboard key IDs, you need to import from PyQt5.QtCore.Qt, and even then you don’t need to use the Key enum, they’re all accessible with a name like Qt.Key_Up. Figuring this out from the documentation was very difficult for me, so I needed again to fall back to a provided example from Krita.

Krita launches its actions using a named ID. These are all listed on the Krita scripting tutorial page, but I needed to access these programatically. Reading through the Krita and Qt APIs showed it was pretty easy where the actions could all be listed, but I did have some trouble identifying the right place where the action ID is stored. The Krita action dictionary calls these ‘id’s, but they are in Qt ‘object names’. Eventually I found these are not accessed as properties but rather by a getter function:

from krita import Kritamykrita = Krita.instance()allkritacmds = mykrita.actions()...command_id = kritacmd.objectName()

The script I ended up with could probably be made more efficient, but I enjoyed the exercise of learning how to interact with Krita’s scripting environment.

https://lonm.vivaldi.net/2025/05/29/krita-quick-commands/

#documentation #extension #krita #python #qt #scripting #Software

2025-05-29

Knowledge is power! Explore IPFire's comprehensive documentation for insights, tips, and troubleshooting. Empower yourself to manage your network like a pro. 📚💻 #Documentation #LearnIPFire

2025-05-29

#Documentation

Is there a way I could have folks collaborate on a folder of markdown docs, (like in interactive mode where multiple people can type at the same time), and then some smarty pants in the group could do a pull request to a git repo.

I’m wanting both of these things, for a multisite multi group collaborative documentation project.

Need the git workflow and would like to be able to have technical and non-technical collaborators in the mix.

#Markdown #Documentation #DigitalGarden #GitBasedWiki #Wiki #FOSS #Docs #Mkdocs

Sarah Rainsbergersarah11918
2025-05-28

So hypothetically, if we started streaming Talking and Doc'ing on YouTube, would anyone attend/watch later...

A glowing pink neon sign with the Astro logo that reads "ON THE AIR" with "Talking and Doc'ing" underneath. The podcaster version of our square, smiley-faced mascot Houston, wearing earphones and in front of a microphone sits underneath, on a purple galaxy background.
N-gated Hacker Newsngate
2025-05-27

Ah yes, the riveting tale of "Starlight vs. ," where the climax is... a software . 😴 If you relish the thrill of swapping one open-source tool for another, this is your literary Everest. 🏔️ Or just press Ctrl+F for "why" and have a laugh. 😂
glasskube.dev/blog/distr-docs/

Hacker Newsh4ckernews
2025-05-27
looopToolslooopTools
2025-05-27

Usually people only brag about big contributions to Today I want to brag about my smallest EVER! git.sr.ht/~bzg/worg/commit/26d

I did something so simple as adding an `L` to a heading in the

Here is why I want to brag:

Documentation ofte receives the smallest amount of attention from contributors and to me it seems like people just figure out stuff and never actively contribute to documentation unless heavily involved in a project.

2025-05-27

@marzee
A version history of that bit of code that did drag-and-drop would be interesting. If whoever was diddling with it over the years was good at documenting what was going on, that is. Do people do that any more? I mean leave verbose notes in the code or documentation? Some really ancient code might have had an interesting evolutionary journey. Might be an idea for a book if somebody who knew about that kind of stuff was looking for one. #Documentation

@BasicAppleGuy

Veronica Olsen 🏳️‍🌈🇳🇴🌻veronica@mastodon.online
2025-05-25

I've been working a little bit on the @novelwriter documentation today as well. It's starting to look like what I was aiming for.

The PDF version is now 102 pages though. 😅

My goal is to structure it so that it naturally progresses from the basics to the technical stuff users don't need to know, but contributors and tinkerers do.

The key parts is about how to format plain text, and that is now at the very top, with more advanced features in the middle.

#OpenSource #Documentation

Miguel Afonso Caetanoremixtures@tldr.nettime.org
2025-05-25

"How to leverage documentation effectively in Cursor through prompting, external sources, and internal context

Why documentation matters

Documentation provides current, accurate context. Without it, models use outdated or incomplete training data. Documentation helps models understand things like:

- Current APIs and parameters
- Best practices
- Organization conventions
- Domain terminology

And much more. Read on to learn how to use documentation right in Cursor without having to context switch."

docs.cursor.com/guides/advance

#AI #GenerativeAI #Cursor #TechnicalWriting #Documentation #SoftwareDevelopment #APIDocumentation #SoftwareDocumentation

2025-05-24

Everyone's got into Jaquaysing their dungeons, so can we also talk about *not* Jacquaysing your documentation?

Required reading should not let you wander off into an enchanted land of NVidia problems and loop back to the start.

splint.rs/posts/no_links

(written with home-grown hatred and nausea)

#Blogging #Documentation

MathDaTech :fedora: 🤘mathdatech1@hostux.social
2025-05-24

Runebook.dev

Runebook is Open source community translations of documentation for software developers. including programming languages, frameworks, libraries, APIs and more.

runebook.dev/

#documentation #translation #opensource

Client Info

Server: https://mastodon.social
Version: 2025.04
Repository: https://github.com/cyevgeniy/lmst