All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Using attributes enclosed in quotes, but not jsons. Extra scenario handled (#176)
- Dependency updates
- asciidoctor-diagram to 2.3.1
- Check for conflict of published page with pages parent (#142)
- Support for Kroki in asciidoc files via
kroki-extension
(#162)
- dependency updates:
- plantuml to 1.2024.5
- other deps (kotlin, ktor, logback, asciidoctor)
- Handling of quotes in image titles and alt text (#166)
- Escaping url for block images (#183)
- Using attributes enclosed in quotes, but not jsons (#176)
- [export-to-md] now resolves user references for Confluence Server (#51)
- handling of links with spaces for both Markdown and AsciiDoc. Such links need to be specified urlencoded (
e.g.
dir%20with%20space/my-doc.md
for file indir with space
directory) and now file is properly resolved. (#83) - [AsciiDoc]
xrefstyle
attribute is taken into account for references (#136)
- Detection of duplicate titles in scanned files (#131)
- User macro in asciidoc files with email format (#135)
- dependency updates:
- using image with Java 21 to distribute text2confl
- plantuml to 1.2023.13
- other deps (kotlin, ktor, jackson)
- in
upload
andexport-to-md
commands you can enable logging of http requests/responses and configure request timeout - configuration file can be named as
text2confl.yml
ortext2confl.yaml
in addition to dot-prefixed names (.text2confl.yml
,.text2confl.yaml
). -v
option can be passed to enable verbose logging. Repeat up to three times to get more details in logs.upload
command now print well-formatted summary of uploaded pages
- dependency updates:
- migrated to
io.github.oshai:kotlin-logging-jvm
- plantuml to 1.2023.12
- migrated to
- Non-local links detection (may cause crash on Windows, #116, #96)
export-to-md
now always uses/
as path separator for attachments- Difference in page names causes page to be renamed first. This stabilize upload operation (#25) and also fixes inconsistent cleanup of pages that were renamed.
json
is added to supported languages on Confluence server
.text2confl.yml
config is now properly loaded with consistent property names (kebab case) and case insensitive enum values
cli
model is split into 2:core
andcli
. Contributed by @dgautier.- dependency updates
- Asciidoctor diagram to 2.2.13
- plantuml to 1.2023.11
- docker image is now built for arm64 in addition to amd64. To support this, image was switched from alpine to regular jre image of eclipse temurin
- [AsciiDoc] Support for underlined text (#74)
- [AsciiDoc] No line breaks inside paragraph (#73)
- Files in Asciidoc format. Features (see
details in docs):
- All basic rendering features of asciidoc
- 3 bundled Confluence-specific macros: status, userlink and generic macro
confl_macro
that allows to render any simple macro - Support for registering additional ruby libs
- Support for
asciidoctor-diagram
- Dependency updates:
- Clikt 4.2.0
- Kotlin 1.9.10
- Support for large amount of attachments on page. In this case they returned paginated.
- PlantUML updated to 1.2023.10
- Kotlin updated to 1.9.0
- Ktor updated to 2.3.2
- docker label pointing to GitHub repo. This will let
renovatebot
to fetch changelog
- removed wiremock from final distribution
- [export-to-md] now properly handles page link without special link name
- [export-to-md] adjusted simple table detection to handle simple tables with header row in
tbody
- Support for multi-tenant content in one space
- [Markdown] Support for attachments that are not referenced on page by link. This can help to use macros that expect attachment as parameter.
export-to-md
command, that exports requested confluence page to Markdown and downloads all attachments. Handy when you migrate handwritten pages to repository stored file.
-
[Markdown] Attachment naming for link and image references - attachment will be named after reference name.
Example:
[my attachment]: some/location/with/my.txt
will be uploaded asmy attachment
. -
PlantUML updated to 1.2023.8
- [Markdown] Support for quoted usernames -
@"username@example.org"
- [Markdown] Support for auto-links in file (enabled by default)
- [Markdown] Support for typography (enabled by default for dots and dashes)
- [Markdown] Support for tables parsing customizations
- Support to customize language mapping for code blocks
- [Markdown] column spans are enabled by default for tables. Can be disabled via configuration
- PlantUML updated to 1.2023.7
- [Markdown] Support for diagrams as code blocks when corresponding tool is present
- PlantUML diagrams (
puml
orplantuml
) whenplanuml
command is present - Mermaid diagrams (
mermaid
) whenmmdc
command is present - Kroki diagrams
- PlantUML diagrams (
- Ability to set extra properties for pages (more in docs):
- any page attribute with name
property_<property_name>
- any page attribute with name
- Dockerfile bundles
plantuml
jar file so, plantuml diagrams can be generated out of the box when docker image is used - Using
eclipse-temurin
as base docker image, asopenjdk
is deprecated - Updated various kotlin and generic dependencies
- Http client now has dedicated user agent -
text2confl
- Split single-page doc about Markdown into separate pages
- Errors in converted files like unbalanced tags produce non-zero error code
0.11.0 - 2023-07-16
- Executable for Windows in distro
- Support for virtual pages: pages that are present in hierarchy but maintained manually. Read more in user guide
- Fixing of pages parent even when content is not changed
- Updated dependencies: kotlin 1.7, ktor 2.1, latest jackson
- Added check that converted file is a valid xml before trying to upload content to server
- Support for emoji text-codes using
:metal:
formatting: 🤘
- Symlink to command was missing in PATH of docker image
- [Markdown] Support for any Confluence macros with simple key-value parameters. Ref with
format
[MACRONAME param1=value1]
will insertmacroname
macros with one parameterparam1
(#20).
- Don't fail when modifying/deleting attachment in Confluence Server (#18)
- [Markdown] User reference now supports
-
symbol in the middle of username, e.g.~user-name
(#21)
- Cleanup of orphaned pages is done in parallel to reduce execution time
- Now labels from confluence server associated with page deserialized properly (#16)
- [Markdown] Missing TOC properties are supported now:
outline
- [Markdown] TOC parameters can be specified in
[TOC]
block.
- Orphaned pages are now detected in root parents and leaf pages. Parent page is also properly tracked as now real parent is used instead of default parent (because every page can configure parent in attributes).
- Ability to add autogenerated note block with parametrized text that by defaults point to source file location.
convert
command now takes into account parameters from.text2confl.yml
file- Support for orphaned child pages removal using 2 strategies:
managed
(default) - to remove pages only created bytext2confl
itself. It is good to clear dangling pages after rename while allowing humans to maintain pages under generated onesall
- to remove all child pages. It is good if you want to enforce policy that all pages should be managed in code
- Support for dry run upload - no modifications will be done. Instead, potential actions will be logged with (dryrun) marker
- Updating page labels when page on server does not have any label
- Ability to override parent via page attributes. This can be handy for use-cases when root pages do not belong to single parent
- [Markdown] Support for status macro via custom html tag:
<status color="red">STATUS text</status>
- [Markdown] Support for confluence username reference (
@username
) - [Markdown] Support for ^superscript^ text
- [Confluence Cloud] Creation of page - turns out cloud version sets editor property on page creation, so call to create this property fails
- [Confluence Cloud] Fixed line soft wraps. Editor v2 does paragraph breaks on soft wraps that is undesirable
- Space details resolution used hardcoded space key, now provided key is used properly
Initial release of application.
- Uploading to confluence with username/password and access tokens
- Parallel upload of pages to reduce time
- Support for editor v1 and v2. Uploaded page is marked accordingly
- Support for files in Markdown format with the following features specific to Confluence
- Table of Contents
- Task lists
- Admonitions (tip, note, warning, info blocks)
- Attachments