mirror of
				https://github.com/zadam/trilium.git
				synced 2025-11-03 11:56:01 +01:00 
			
		
		
		
	add configurable max content width with default value of 1200px.
This commit is contained in:
		@@ -163,7 +163,23 @@ const TPL = `
 | 
			
		||||
    
 | 
			
		||||
    <p>
 | 
			
		||||
        To apply font changes, click on 
 | 
			
		||||
        <button class="btn btn-micro" id="reload-frontend-button">reload frontend</button>
 | 
			
		||||
        <button class="btn btn-micro reload-frontend-button">reload frontend</button>
 | 
			
		||||
    </p>
 | 
			
		||||
    
 | 
			
		||||
    <h4>Content width</h4>
 | 
			
		||||
    
 | 
			
		||||
    <p>Trilium by default limits max content width to improve readability for maximized screens on wide screens.</p>
 | 
			
		||||
 | 
			
		||||
    <div class="form-group row">
 | 
			
		||||
        <div class="col-4">
 | 
			
		||||
            <label for="max-content-width">Max content width in pixels</label>
 | 
			
		||||
            <input type="number" min="200" step="10" class="form-control" id="max-content-width">
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    
 | 
			
		||||
    <p>
 | 
			
		||||
        To content width changes, click on 
 | 
			
		||||
        <button class="btn btn-micro reload-frontend-button">reload frontend</button>
 | 
			
		||||
    </p>
 | 
			
		||||
</form>`;
 | 
			
		||||
 | 
			
		||||
@@ -192,7 +208,7 @@ export default class ApperanceOptions {
 | 
			
		||||
        this.$monospaceFontSize = $("#monospace-font-size");
 | 
			
		||||
        this.$monospaceFontFamily = $("#monospace-font-family");
 | 
			
		||||
 | 
			
		||||
        $("#reload-frontend-button").on("click", () => utils.reloadFrontendApp("font changes"));
 | 
			
		||||
        $(".reload-frontend-button").on("click", () => utils.reloadFrontendApp("changes from appearance options"));
 | 
			
		||||
 | 
			
		||||
        this.$body = $("body");
 | 
			
		||||
 | 
			
		||||
@@ -238,6 +254,14 @@ export default class ApperanceOptions {
 | 
			
		||||
        for (const optionName of optionsToSave) {
 | 
			
		||||
            this['$' + optionName].on('change', () => server.put(`options/${optionName}/${this['$' + optionName].val()}`));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        this.$maxContentWidth = $("#max-content-width");
 | 
			
		||||
 | 
			
		||||
        this.$maxContentWidth.on('change', async () => {
 | 
			
		||||
            const maxContentWidth = this.$maxContentWidth.val();
 | 
			
		||||
 | 
			
		||||
            await server.put('options/maxContentWidth/' + maxContentWidth);
 | 
			
		||||
        })
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    toggleBodyClass(prefix, value) {
 | 
			
		||||
@@ -292,6 +316,8 @@ export default class ApperanceOptions {
 | 
			
		||||
 | 
			
		||||
        this.$monospaceFontSize.val(options.monospaceFontSize);
 | 
			
		||||
        this.fillFontFamilyOptions(this.$monospaceFontFamily, options.monospaceFontFamily);
 | 
			
		||||
 | 
			
		||||
        this.$maxContentWidth.val(options.maxContentWidth);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    fillFontFamilyOptions($select, currentValue) {
 | 
			
		||||
 
 | 
			
		||||
@@ -19,7 +19,7 @@ export default class SplitNoteContainer extends FlexContainer {
 | 
			
		||||
        const $renderedWidget = widget.render();
 | 
			
		||||
 | 
			
		||||
        $renderedWidget.attr("data-ntx-id", noteContext.ntxId);
 | 
			
		||||
        $renderedWidget.css("flex-basis", "0"); // so that each split has same width
 | 
			
		||||
        $renderedWidget.addClass("note-split");
 | 
			
		||||
 | 
			
		||||
        $renderedWidget.on('click', () => appContext.tabManager.activateNoteContext(noteContext.ntxId));
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -950,3 +950,9 @@ input {
 | 
			
		||||
    white-space: nowrap;
 | 
			
		||||
    text-overflow: ellipsis;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.note-split {
 | 
			
		||||
    flex-basis: 0; /* so that each split has same width */
 | 
			
		||||
    margin-left: auto;
 | 
			
		||||
    margin-right: auto;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -54,6 +54,7 @@ const ALLOWED_OPTIONS = new Set([
 | 
			
		||||
    'dailyBackupEnabled',
 | 
			
		||||
    'weeklyBackupEnabled',
 | 
			
		||||
    'monthlyBackupEnabled',
 | 
			
		||||
    'maxContentWidth'
 | 
			
		||||
]);
 | 
			
		||||
 | 
			
		||||
function getOptions() {
 | 
			
		||||
 
 | 
			
		||||
@@ -35,7 +35,8 @@ function index(req, res) {
 | 
			
		||||
        isDev: env.isDev(),
 | 
			
		||||
        isMainWindow: !req.query.extra,
 | 
			
		||||
        extraHoistedNoteId: req.query.extraHoistedNoteId,
 | 
			
		||||
        isProtectedSessionAvailable: protectedSessionService.isProtectedSessionAvailable()
 | 
			
		||||
        isProtectedSessionAvailable: protectedSessionService.isProtectedSessionAvailable(),
 | 
			
		||||
        maxContentWidth: parseInt(options.maxContentWidth)
 | 
			
		||||
    });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -89,7 +89,8 @@ const defaultOptions = [
 | 
			
		||||
    { name: 'autoReadonlySizeCode', value: '30000', isSynced: false },
 | 
			
		||||
    { name: 'dailyBackupEnabled', value: 'true', isSynced: false },
 | 
			
		||||
    { name: 'weeklyBackupEnabled', value: 'true', isSynced: false },
 | 
			
		||||
    { name: 'monthlyBackupEnabled', value: 'true', isSynced: false }
 | 
			
		||||
    { name: 'monthlyBackupEnabled', value: 'true', isSynced: false },
 | 
			
		||||
    { name: 'maxContentWidth', value: '1200', isSynced: false },
 | 
			
		||||
];
 | 
			
		||||
 | 
			
		||||
function initStartupOptions() {
 | 
			
		||||
 
 | 
			
		||||
@@ -58,6 +58,12 @@
 | 
			
		||||
    };
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style>
 | 
			
		||||
    .note-split {
 | 
			
		||||
        max-width: <%= maxContentWidth %>px;
 | 
			
		||||
    }
 | 
			
		||||
</style>
 | 
			
		||||
 | 
			
		||||
<!-- Required for correct loading of scripts in Electron -->
 | 
			
		||||
<script>if (typeof module === 'object') {window.module = module; module = undefined;}</script>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user