qemacs - small but powerful UNIX editor with many features
that even big editors lack.
QEmacs is a text editor targeted at embedded systems or debugging.
Although it is very small, it has some very interesting features
that even big editors lack such as an Emacs look and feel with all
common Emacs features, can edit huge files, has full Unicode support,
has various syntax modes for common programming langauges, a shell
mode with full color VT100 terminal emulation, input methods for
most languages (including Chinese), binary and hexadecimal in place
editing mode, no termcap requirement, X11 support, and PNG/bitmap
support.
New option `--config-defaults` / Viewer: serve links with URL fragments
From version v1.23 on, Tp-Note merges configuration files into its internal
configuration. Consequently, without custom changes no configuration file
is required at all. Nevertheless, to get a copy from the internal configuration
(you can base your custom configuration file upon) a `--config-defaults` option
is added.
Another improvement concerns the viewer's link rewriting code: with this release
URL fragments (starting with `#`) are rendered correctly. This allows you for
example to add a hyperlinked table of contents at the beginning of your notes.
Also footnotes like `[^1]` are rendered correctly.
v1.23.1
Maintenance release
This reverts the commit `72bc7f2` that had been mistakenly merged into master.
72bc7f2 Rename the root path marker file to `tpnote.toml`
It restores the original name of the marker file: `.tpnote.toml`
v1.23.0
Merge config files / Zettelkasten support
Tp-Note is shipped with a default internal configuration that can be customized
by merging a series of configuration files from various locations into the
default values. This happens in the following order:
1. Unix and MacOS only: '`/etc/tpnote/tpnote.toml`'
2. The file where the environment variable '`TPNOTE_CONFIG`' points to.
3. The user's configuration file:
- Unix: '`~/.config/tpnote/tpnote.toml`'
- Windows: '`C:\Users\<LOGIN>\AppData\Roaming\tpnote\config\tpnote.toml>`'
- MacOS: '`/Users/<LOGIN>/Library/Application Support/tpnote`'
4. At startup all parent directories of the note file path '`<PATH>`'are
searched for a marker file named '`tpnote.toml`'. If found, the document root
moves from '`/`' the found location. If present and its content is not empty,
Tp-Note interprets the file's content as configuration file.
5. The file indicated by the command line parameter '`--config <FIlE>`'.
When Tp-Note starts, it first merges all available configuration files into
the default configuration. Then the resulting syntax is checked. If not
correct, the last sourced configuration file is renamed (thus disabled) and
Tp-Note starts with its internal default configuration. For debugging, you can
print out the merge result with '`-V -b -d trace`'.
To write a custom configuration file, first start with a complete default
configuration you can generate by invoking Tp-Note with '`-V -b -c`'
(no '`-d`').
```sh
tpnote -V -b -c ~/.config/tpnote/tpnote.toml
```
Some filename and template related variables are grouped into a '`scheme`'.
The shipped configuration file lists two schemes: '`default`' and '`zettel`'.
The scheme used when creating a new note, is selected by the commend line
option '`--scheme`', the environment variable '`TPNOTE_SCHEME`' or the
configuration variable '`arg_default.scheme`'. The scheme selected when
synchronizing a Tp-Note header with its filename depends on the
value of the header variable '`scheme:`' which defaults to '`default`'
(cf. '`scheme_sync_default`').
Viewer bugfix: store the path to non-base-documents
This fixes a regression introduced with
d1c0ed4 2023-10-31
Error when `fm_sort_tag` is sequential and duplicate
in Tp-Note version v1.22.11
New feat.: localize new note's front matter / theme selection
* Localize new note's front matter
* Theme selection:
A theme is an interchangeable set of configuration file variables. Tp-Note is shipped
with two scheme: `default`, `zettel` (for Zettelkasten, experimental).
The user can select a scheme with:
* the command line option `--scheme SCHEME_NAME`,
* environment variable `TPNOTE_SCHEME` or
* the configuration file variable `arg_default.scheme`.
* The command line option:
`--force-lang='-'` is replaced with `--force-lang=''`
PageEdit-2.02
Bug Fixes
- workaround QtWebEngine load Finished signal not indicating when javascript is ready
- remove previous hack for missing loadFinished after loadStarted during internal links
- update Qt with patches to fix numerous Accessibility bugs in Qt6.5.2 that caused crashing
- workaround MacOS QMessageBox loss of focus Qt 6.5.X bug without hurting other platforms
- give user the chance to cancel leaving a page if modified
- update macOS Info.plist for macOS min of macOS 11.0
- add workaround Edit->Paste of html from clipboard without full context on Windows
PageEdit-2.00
New Features
- updated official releases to use Qt 6.5.2
- added ability to create and apply Clips
- updated to jquery 3.6.4 for security fixes
- added ability to control print output quality (dpi)
- added ability to show embedded pdfs in an epub (ala ADE)
Bug Fixes:
- updated to the latest sigil-gumbo for bug fixes and to add new tags
- fixed all/most compiler warnings depending on platfrom/compiler
- added WebProfileMgr to fix crashes and better manage QWebEngineProfile and local storage
Sigil-2.0.2
Bug Fixes
- fix incorrect clip tool button insertion point due to null activeWindow value
- fix Windows multiple screen issues when not properly identified (Qt6.5.2 patch fix)
- fix Mac Accessibility related crashes when using non-native QFileDialog (Qt 6.5.2 patch fix)
- workaround MacOS QMessageBox loss of focus Qt 6.5.X bug without hurting other platforms
- fix pretty print mend not formatting mathml
- fix Accessibility related crashes in QFontComboBox (Qt 6.5.2 patch fix)
- prevent crashing if user mistakenly tries to delete entire ncx in CodeView
- harden delete unused styles to trailing whitespace in class names
- fix unrecognized media-types application/xml and text/xml
- fix cursor just before end tag bug in align justiry, centre, right
- fix crash when all metadata removed by user in MetaEditor
- fix macOS min in Info.plist to be the actual 11.0
- update build docs to Qt 6.5.3
Sigil-2.0.1
Bug Fixes
- fix crash when right click on Misc folder in BookBrowser
- Allow user to revert CodeView drag_and_drop change via environment variable: SIGIL_ALLOW_CODEVIEW_DROP=1
Note: Using DragnDrop in CodeView is still NOT officially supported.
- add inadvertantly missed updated serbian translation (ts) file
Sigil-2.0.0
Bug Fixes
- fix incorrect assert in sigil-gumbo
- recognize application/pdf mediatype on epub import
- remove compiler build warnings to clean up the build output
- recognize source tag attribute srcset for xhtml source updates
- fix Preview disconnect bug after split at cursor
- fixed sigil-gumbo interface for plugins
- added workaround for ADE epub3 bug with scaled cover images
- fix encoding for named entities in opf metadata
- fix drag/drop crash by disabling drop inside CodeViewEditor
- fix CodeView to Preview syncing on text after an inline xhtml comment
New Features
- updated to Qt 6.5.2 which is now used for official releases
- updated to Python 3.11.3 and uses the latest EmbededPython interface
- updated to the latest jquery version 3.6.4
- supports use of embedded pdfs ala ADE
- added dark window titlebars for Windows platforms
- add support for a user's cover-template2.xhtml and cover-template3.xhtml
- add user preference to control printing dpi and add busy indicator icon
Changes:
* Creation of various interface themes for TeXmacs, such as dark
and bright (2.1.1).
* Improved high resolution support under Linux and Windows (2.1.1).
* Progress on (not yet default) Qt5 version of TeXmacs (2.1.1).
* Updated font database for recent pre-installed Linux/Mac/Window
fonts (2.1.1).
* Minor bug fixes (2.1).
* Updated plug-in for Giac (1.99.21).
* Better support for the most common LaTeX style files (1.99.20).
* Many corrections for the LaTeX export when using common LaTeX
styles (1.99.20).
* Added Slovak language support (1.99.20).
* Improved Octave plugin with tab completion and multi-line input
(1.99.19).
* Enhanced structured search & replace: added preferences and
wildcards (1.99.19).
* Minor progress on the remote editing tools (1.99.18).
* Improved remote editing tools (1.99.17).
* Lightweight facility for managing user-defined keyboard
shortcuts (1.99.17).
* Improved customizability of item lists and enumerations
(1.99.17).
* Further improvements for preview and help balloons (1.99.16).
* Possibility to find labels from their numeric value (1.99.16).
* Incorporation of a smart-ref package for smart references
(1.99.16).
* Fix spell checking under Windows (1.99.16).
* Rudimentary support for Wacom-style pen tablets, Qt5 only
(1.99.16).
* Improved help balloons and preview facility for references and
citations (1.99.15).
* Improved navigation and search tools for labels, references, and
citations (1.99.15).
* Indicate the current cursor position by shaking the mouse
(1.99.15).
* Improved Html export with better CSS stylability (1.99.14).
* Improved Octave plugin (1.99.14).
Internal improvements: better modelling of "sequential/chronological" sort-tags
This release formalizes the concepts of `sequential sort-tags` vs.
`chronological sort-tags`:
1. A _sort-tag_ is composed of a number of counters, which can be numerical,
e.g. `123.28` or combined numerical/letter based, e.g. `123ab`.
2. A counter is set of digits (base 10) `123` or a set of lowercase
letters (base 26) `ab`.
3. A letter based counter can be maximal 2 letters wide. Its maximum is
`zz` (cf. `filename.sort_tag.letters_in_succession_max`).
4. A _sequential sort-tag_ is a sort-tag that whose counters are at most 3
digits wide (cf. `sort_tag.sequential.digits_in_succession_max`).
5. The filter `incr_sort_tag` increments only sequential sort-tags.
6. In order not to confuse sequential and chronological sort-tags, it is
recommended to always write out the year in chronological sort-tags with 4
digits, e.g. `2013-08-10` or `20130810`.
Tmpl: relax sort-tag chars; increment sequential sort-tags;
New features:
1. Default change in `filename.sort_tag_chars`: sort-tags may now include
lowercase letters. The space and tab characters are depreciated.
2. Tp-Note searches for the latest created document, extracts the sort-tag from
the finding, increments it and uses the result as sort-tag for the new file.
Incrementation examples: `02-3` -> `02-4` or `1b01f` -> `1b01g`.
Chronological sort-tags like `20231024` are never incremented.
3. The viewer now understands so-called _format strings_ that can be appended
to local links, e.g. the link `<tpnote:1a3?-->` expands to
`<a href="1a3-my doc.md">my doc</a>` in case a file `1a3-my doc.md` exists in
the current directory.
Breaking changes:
1. In previous Tp-Note versions, the default set for allowed characters in
sort-tags included the space and tab characters. From this version on, these
characters are not allowed in valid sort-tags anymore. If needed, you can
re-add them to the configuration file variable `filename.sort_tag_chars`.
Changelog from release notes
bug fixes:
* codelite-ctags is now built as part of CodeLite sources and is
not provided as a prebuilt binary
* ctagsd finds the wrong definition of a method
* Respect user-supplied/alternate wx-config Alternate wx-config
is not respected by ctagsd and codelite-cli subsystems
* Filesystem Workspace: Make Build and Run Project and Rebuild
Project work with filesystem workspace (rlbxku1r)
* restore frame attributes: MAXIMIZE, FULLSCREEN
* Editor margin offset with fractional scaling enabled
* Fixed: CodeLite crashes when opening the resource dialog when
no workspace is opened
* Fixed: CodeLite crashes when the LSP command is invalid
* Fixed the issue that OpenFileAsync would not trigger the
callback function to open soft-linked files
* FIX: Git, The first commit failed (liuanlin-mx)
* fix:git plugin: show file diff, file path is incorrect
* git: add Show file Log (liuanlin-mx)
* Fix: Replace All, Regular expressions don't work (liuanlin-mx)
* Clicking the "Refresh" button in the FSW toolbar, refreshes
the entire tree, unconditionally
* Tab control navigation: use the same keyboard on all major
platforms
* Tab control navigation dialog: show the dialog when using
WSL2 on Windows
* Fix issue with "Open Resource..." searches containing
:line[:column] When search pattern includes :line[:column]
the current search only uses the filename - paths before the
filename are ignored (Uffe Jakobsen)
* fixed: Outline view is unreadable - bad colors
* Add support for Alacritty terminal emulator
* wxCrafter: Subclass of wxSpinCtrl crashes wxCrafter
Impovements:
* Source code formatter: added support for cmake-format
* CodeLite startup time improved
* Updated the Replace UI to fit the other controls
* Preferences dialog has been re-written and now fits better on
small screen, as a side bonus, it loads instantly
* Reloading a file opened remotely, now loads it from the
remote server ( Ctrl+R )
* Language Server plugin: LSP server detection code improvements
* Code Formatter plugin: the plugin was re-written.
By default CodeLite now configure code formatters for:
C++ clang-format
JSON jq
XML xmllint
Rust rustfmt
PHP php-cs-fixer & phpcbf
Python black
* Code Formatter plugin: support "Format On Save": the user can
now configure that the editor will be formatted after a save
operation
* Code Formatter plugin: is now supporting invoking formatting
on remote files opened via the Remoty plugin
* Hidden folders are now displayed in the UI using gray text and
disabled image
* Remoty workspace tree view: added an option to copy a remote
folder path
* File system workspace tree view: the top level folder no longer
displays the fullpath, but rather that last dir name
* A modified tab now displays a round circle indicating that the
file is modified
* All template files have been updated to use the
dap - Debug Adapter Client by default
* Welcome Page has been updated, mainly, the list of Recently
opened workspaces now includes list of workspaces opened by
other plugins (e.g. Remoty)
Instead of depending on one of the removed packages (that are now included
in the base Python packages), include batteries-included.mk to require
a Python version that supplies them.
Remove now included packages.
Bump PKGREVISION.
Minor improvements in Markdown parsing
The version now recognizes all the official Markdown escape `\`
characters when searching for Hyperlinks or rendering `.txtnote` files.
See
[CommonMark Spec](https://spec.commonmark.org/0.30/#backslash-escapes)
for more details.
## 1.2.2
Bugfixes from various community contributors.
* Fixed undefined behaviour due to signal callbacks wrong type (#5057)
* Fixed reference handling of sidebar widgets, fixing crashes and warning (#5083,
#5074, #4026)
* Default build type is now "RelWithDebInfo" (#5118)
* Fixed error message when trying to open an autosave file (#5140)
* Fixed empty toolbars being shown (#5160, #5051)
* Added a device id check for input sequences, so devices don't interfere with one
another anymore (#5170, #5116, #5087)
* Fixed a bunch of memory leaks (#5164, #5216)
* Properly read PDF files as binary, fixing some reading issues (#5174, #4740)
* Removed unsafe symbols from document name generation (#5144, #5123)
* Fixed crash when a modification happens outside of the cached pages (#5144,
#5178, #5162, #5046, #5126)
* Fixed audio output settings being off by 1 (#5205)
* Clarified CrashLog message: deleting the Crashlog will stop the message from popping up (#5214)
* Fixed a crash when pressing both mouse buttons at once (#5210, #5149)
Viewer renderer: resolve shorthand links to their link text
* Viewer: When viewing documents, shortcut links are resolved to their title.
For example: a shorthand link `tpnote:docs/20230513` that targets the file
`docs/20230513-Animals.md` is shown as a hyperlink with the link text
"Animals" in the browser.
* Viewer: hyperlinks with embedded images are now supported.
* The `.txtnote` renderer now parses inline images and hyperlinks with inline
images.
Viewer: link to other docs with shorthand links, minor regr. fixes
New features:
* A shorthand link in a Tp-Note document e.g. `[text](tpnote:123)` is now
expanded when being viewed. The renderer searches for a file starting
with the sort-tag `123` on disk and displays the filename (without sort-tag).
For example: a shorthand link to the file `123-My Animals.md` can be
written as`<tpnote:123>` and the link will be displayed as `My Animals`.
* HTML rendition: The erroneous link path is now shown next to the error
message.
(Minor) bug fixes:
* `file_ext: ''` is allowed again (regression introduced in v1.22.0)
* The viewer opens also (with an error message) in case of syntax errors
in `file_ext:` or `sort_tag:`. These syntax errors had been mistakenly
considered being fatal since v1.22.0.
Internal improvements:
* The link rewriting code is heavily refactored, simplified and easier to
maintain.
New shortcut notation to link Tp-Note documents
* Links in Tp-Note documents: Add new optional scheme `tpnote:` for local links,
e.g. in Markdown the autolink `<tpnote:dir/my%20other%20doc.md>` targets
`dir/my other doc.md`. The link is displayed as `my other doc`.
* Configuration: the variable `filename.extensions` groups all former
`filename.extensions_*` variables (config breaking change).
* Viewer: internal improvements handling HTML escape codes and percent codes
in URLs.
* Integration: register additional Tp-Note files extension: `.txtnote`. The
viewer only links, no markup.
* Template: new filter: `link_text_picky`, similar to `link_text`. The latter
always return the fist link found, `link_text_picky` rejects obvious
meaningless link text content.
version 1.5.2 (2023-10-05)
--------------------------
- fixed disabling Read Only doesn't disable encoding error locks
- fixed filedialog not showing the sort indicator sometimes
- fixed potential buffer overflow in ExecShellCommand/ExecCursorLine
- fixed build on Solaris 10
v1.22.4
Add compilation target *bsd, fixes#17
v1.22.3
Maintenance release: refactor and simplify HTML tmpl. code
Breaking change in HTML templates:
* Rename template variables `{{note_*}}` to `{{ doc_* }}`
* New `markup_to_html(extension=ext)` filter
* Replace template variable `doc_erroneous_content_html|safe` with
`doc_text|markup_to_html|safe`
v1.22.2
Viewer: choose syntax highlighting theme
This release come with 3 new configuration features:
1. Choose the syntax highlighting theme with the configuration file variables:
`tmpl_html.viewer_highlighting_theme` and
`tmpl_html.exporter_highlighting_theme`.
2. Breaking change: The HTML templates `tmpl_html.viewer`,
`tmpl_html.viewer_error` and `tmpl_html.exporter` automatically escape
HTML critical characters. Escaping can be disabled be adding the
`safe` filter in last position.
3. Tp-Note's configuration file is now stored with inline documentation.
Despite --without-all, emacs's configure finds and enables nextstep
(cocoa) on macOS, which besides violating the intent to build a
command-line emacs, builds a different set of files and thus fails
packaging. Explicitly disable nextstep.
With this change, the package builds and runs on macOS.
Maintenance release, no new features
Configuration breaking change:
* Split the `field(...)` filter into `remove(key=...)` and
`insert(key=..., value=...)` filters with more common names.
Support also nested YAML types (map, array) in document header
Before this release, all header variables were limited to flat string types.
This release overcomes this limitation: all templates and the document viewer
can now deal with all YAML types, e.g. String, Number, Bool, including the
nested ones: Array, Object. For example, the following is now valid:
```yaml
title: My Article
author:
first: John Doe
second: Martin Foo
date:
- 2023-04-13
- 2023-04-22
```
Further improvements:
* The templates only emits double quotes, were required be YAML standards.
* Configurable type checks occur before applying filename templates (see
`tmpl.filter_assert_preconditions` in `tpnote-lib/src/config_default.toml`).
* Stronger (configurable) type checks for `title:`, `subtitle:`,
`lang:`, `sort_tag:` and `file_ext:` header variables with user prompts
* The configuration defaults are now written and documented in TOML format:
* `tpnote/src/config_default.toml`
* `tpnote-lib/src/config_default.toml`