1 2 3 4<!DOCTYPE html> 5<html class="gl-system ui-gray with-top-bar with-header page-with-panels with-gl-container-queries user-logged-out" lang="en"> 6<head prefix="og: http://ogp.me/ns#"> 7<meta charset="utf-8"> 8<meta content="IE=edge" http-equiv="X-UA-Compatible"> 9<meta content="width=device-width, initial-scale=1" name="viewport"> 10<title>CHANGELOG.md · v2 · Lilly Schramm / BooklifyCE · GitLab</title> 11<link as="font" crossorigin="" href="/assets/gitlab-sans/GitLabSans-9892dc17af892e03de41625c0ee325117a3b8ee4ba6005f3a3eac68510030aed.woff2" rel="preload"> 12<link as="font" crossorigin="" href="/assets/gitlab-sans/GitLabSans-Italic-f96f17332d67b21ada2dfba5f0c0e1d5801eab99330472057bf18edd93d4ccf7.woff2" rel="preload"> 13<link as="font" crossorigin="" href="/assets/gitlab-mono/GitLabMono-29c2152dac8739499dd0fe5cd37a486ebcc7d4798c9b6d3aeab65b3172375b05.woff2" rel="preload"> 14<link as="font" crossorigin="" href="/assets/gitlab-mono/GitLabMono-Italic-af36701a2188df32a9dcea12e0424c380019698d4f76da9ad8ea2fd59432cf83.woff2" rel="preload"> 15
16<script> 17//<![CDATA[ 18window.gon={};gon.api_version="v4";gon.default_avatar_url="https://gitlab.eps-dev.de/assets/no_avatar-849f9c04a3a0d0cea2424ae97b27447dc64a7dbfae83c036c45b403392f0e8ba.png";gon.max_file_size=10;gon.asset_host=null;gon.webpack_public_path="/assets/webpack/";gon.relative_url_root="";gon.user_color_mode="gl-system";gon.user_color_scheme="white";gon.markdown_surround_selection=null;gon.markdown_automatic_lists=null;gon.markdown_maintain_indentation=null;gon.math_rendering_limits_enabled=true;gon.iframe_rendering_enabled=false;gon.iframe_rendering_allowlist=[];gon.recaptcha_api_server_url="https://www.recaptcha.net/recaptcha/api.js";gon.recaptcha_sitekey=null;gon.gitlab_url="https://gitlab.eps-dev.de";gon.promo_url="https://about.gitlab.com";gon.forum_url="https://forum.gitlab.com";gon.docs_url="https://docs.gitlab.com";gon.revision="191678a3764";gon.feature_category="source_code_management";gon.gitlab_logo="/assets/gitlab_logo-2957169c8ef64c58616a1ac3f4fc626e8a35ce4eb3ed31bb0d873712f2a041a0.png";gon.secure=true;gon.sprite_icons="/assets/icons-5a3f88503a318f1eaf3b49d9d82c93cdde31fd5224ab8aeeb08534974b21f10c.svg";gon.sprite_file_icons="/assets/file_icons/file_icons-90de312d3dbe794a19dee8aee171f184ff69ca9c9cf9fe37e8b254e84c3a1543.svg";gon.illustrations_path="/assets/illustrations-ae6d9d10410e9e8b59dd365dcf0480219354eb6eed057c8fecd9d17cf9b18ec4.svg";gon.emoji_sprites_css_path="/assets/emoji_sprites-9f4e433199c18178b03727c749cbd0c22e569f69ffb05ec235a49dc29b318bb3.css";gon.emoji_backend_version=4;gon.test_env=false;gon.disable_animations=false;gon.suggested_label_colors={"#cc338b":"Magenta-pink","#dc143c":"Crimson","#c21e56":"Rose red","#cd5b45":"Dark coral","#ed9121":"Carrot orange","#eee600":"Titanium yellow","#009966":"Green-cyan","#8fbc8f":"Dark sea green","#6699cc":"Blue-gray","#e6e6fa":"Lavender","#9400d3":"Dark violet","#330066":"Deep violet","#36454f":"Charcoal grey","#808080":"Gray"};gon.first_day_of_week=0;gon.time_display_relative=true;gon.time_display_format=0;gon.ee=false;gon.jh=false;gon.dot_com=false;gon.uf_error_prefix="UF";gon.pat_prefix="glpat-";gon.fluid_layout=false;gon.keyboard_shortcuts_enabled=true;gon.emoji_autocomplete_enabled=true;gon.broadcast_message_dismissal_path=null;gon.diagramsnet_url="https://embed.diagrams.net";gon.features={"uiForOrganizations":false,"pageBreadcrumbsInTopBar":false,"orgSwitcher":false,"findAndReplace":false,"removeMonitorMetrics":true,"workItemsClientSideBoards":false,"editorStickyTableHeaders":false,"hideUnpinnedSidebarItems":false,"markdownSortableTableColumns":false,"workItemFeaturesField":false,"securityManagerRoleEnabled":true,"allowIframesInMarkdown":false,"inlineBlame":true,"duoConvertCiUseDeveloperFlow":false}; 19//]]> 20</script>
20 21
22<script> 23//<![CDATA[ 24const root = document.documentElement; 25if (window.matchMedia('(prefers-color-scheme: dark)').matches) { 26 root.classList.add('gl-dark'); 27} 28 29window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (e) => { 30 if (e.matches) { 31 root.classList.add('gl-dark'); 32 } else { 33 root.classList.remove('gl-dark'); 34 } 35}); 36 37//]]> 38</script>
vendor: 1 bytes, line 38
38
39<script> 40//<![CDATA[ 41var gl = window.gl || {}; 42gl.startup_calls = {"/Lilly/booklify-ce/-/blob/v2/CHANGELOG.md?format=json\u0026ref_type=heads\u0026viewer=rich":{},"":{}}; 43gl.startup_graphql_calls = [{"query":"# @feature_category: source_code_management\nquery getBlobInfo(\n $projectPath: ID!\n $filePath: [String!]!\n $ref: String!\n $refType: RefType\n $shouldFetchRawText: Boolean!\n) {\n project(fullPath: $projectPath) {\n __typename\n id\n repository {\n __typename\n empty\n blobs(paths: $filePath, ref: $ref, refType: $refType) {\n __typename\n nodes {\n __typename\n id\n webPath\n name\n size\n rawSize\n rawTextBlob @include(if: $shouldFetchRawText)\n fileType\n language\n path\n blamePath\n editBlobPath\n gitpodBlobUrl\n ideEditPath\n forkAndEditPath\n ideForkAndEditPath\n codeNavigationPath\n projectBlobPathRoot\n forkAndViewPath\n environmentFormattedExternalUrl\n environmentExternalUrlForRouteMap\n canModifyBlob\n canModifyBlobWithWebIde\n canCurrentUserPushToBranch\n archived\n storedExternally\n externalStorage\n externalStorageUrl\n rawPath\n replacePath\n pipelineEditorPath\n simpleViewer {\n fileType\n tooLarge\n type\n renderError\n }\n richViewer {\n fileType\n tooLarge\n type\n renderError\n }\n }\n }\n }\n }\n}\n","variables":{"projectPath":"Lilly/booklify-ce","ref":"v2","refType":"HEADS","filePath":"CHANGELOG.md","shouldFetchRawText":false}}]; 44 45if (gl.startup_calls && window.fetch) { 46 Object.keys(gl.startup_calls).forEach(apiCall => { 47 gl.startup_calls[apiCall] = { 48 fetchCall: fetch(apiCall, { 49 // Emulate XHR for Rails AJAX request checks 50 headers: { 51 'X-Requested-With': 'XMLHttpRequest' 52 }, 53 // fetch wonât send cookies in older browsers, unless you set the credentials init option. 54 // We set to `same-origin` which is default value in modern browsers. 55 // See https://github.com/whatwg/fetch/pull/585 for more information. 56 credentials: 'same-origin' 57 }) 58 }; 59 }); 60} 61if (gl.startup_graphql_calls && window.fetch) { 62 const headers = {"X-CSRF-Token":"GjC1XlIf6TEsbQUpooMif8bBKkaDStWKtvTruOrCzyAnv0fb7PDQU6367ZH5EyLWc6GlmVRuEN46eK2seJvFKw","x-gitlab-feature-category":"source_code_management"}; 63 const url = `https://gitlab.eps-dev.de/api/graphql` 64 65 const opts = { 66 method: "POST", 67 headers: { 68 "Content-Type": "application/json", 69 ...headers, 70 } 71 }; 72 73 gl.startup_graphql_calls = gl.startup_graphql_calls.map(call => ({ 74 ...call, 75 fetchCall: fetch(url, { 76 ...opts, 77 credentials: 'same-origin', 78 body: JSON.stringify(call) 79 }) 80 })) 81} 82 83 84//]]> 85</script>
85 86 87<link rel="prefetch" href="/assets/webpack/monaco.04f495d7.chunk.js"> 88 89<meta content="light dark" name="color-scheme"> 90<link rel="stylesheet" href="/assets/application-38bbb7710d1c136698908a2d115057b2d6043a4caea4ba99118e3cae57fd9937.css" media="(prefers-color-scheme: light)" /> 91<link rel="stylesheet" href="/assets/application_dark-33fb0fbbb609214d8e0f7df0f679d4e872badbaaae9f879dca22f043fee63e03.css" media="(prefers-color-scheme: dark)" /> 92<link rel="stylesheet" href="/assets/page_bundles/tree-82a2b0a643427b8cc237cf2437e78bf5ad46c53355f902927c25570510d6852a.css" /><link rel="stylesheet" href="/assets/page_bundles/projects-2d5b0f8de7829b78958778a73c6202488874e74d1b301ae6c825cacadb153dfb.css" /><link rel="stylesheet" href="/assets/page_bundles/commit_description-9e7efe20f0cef17d0606edabfad0418e9eb224aaeaa2dae32c817060fa60abcc.css" /><link rel="stylesheet" href="/assets/page_bundles/design_management-b0d28c79dc2ff36cbf37b4fa7b3bfb2908c91dcec0cf3fb800f11aaa25b08ea8.css" /><link rel="stylesheet" href="/assets/page_bundles/issuable_list-7a33f8b5a79c609e4bac7e1fa1c5553962adf726cd700fbead1f9e974c41e7c9.css" /><link rel="stylesheet" href="/assets/page_bundles/issues_list-1d9cdbbaf9469f9073c410dc7a7f2543b02071773aa332daf63803eaaec87e62.css" /><link rel="stylesheet" href="/assets/page_bundles/issues_show-ec954ae4932e0bfe7383adee3c75f53c5985c6edea62c7ae4370cb1f6e85a91a.css" /><link rel="stylesheet" href="/assets/page_bundles/notes_shared-009bfb6fa90b583372e5d3f444ccd9b89aa6278564b128d1f21b404747a3981b.css" /><link rel="stylesheet" href="/assets/page_bundles/work_items-41608cf50d5529e591f5a635c447fbb3a3bd5892765619ad68eba61d6c811aea.css" /> 93<link rel="stylesheet" href="/assets/tailwind-7400ed60609548461aba7dbe0e73b2a51af66e88c8e6246cee55eab159342bff.css" /> 94 95 96<link rel="stylesheet" href="/assets/fonts-deb7ad1d55ca77c0172d8538d53442af63604ff490c74acc2859db295c125bdb.css" /> 97<link rel="stylesheet" href="/assets/highlight/themes/white-42be68d65ac8b040938b8b730ca40aed564d4576f3f8de65a8bd3f53d41f5ef2.css" media="(prefers-color-scheme: light)" /> 98<link rel="stylesheet" href="/assets/highlight/themes/dark-9a46f25e9c82f3f8bb605049dc6f2462d071fefd58002c4a9eba2cfbf694466a.css" media="(prefers-color-scheme: dark)" /> 99
100<script src="/assets/webpack/runtime.30a42173.bundle.js" defer="defer"></script>
vendor: 1 bytes, line 100
100
101<script src="/assets/webpack/main.9b4c0f6f.chunk.js" defer="defer"></script>
vendor: 1 bytes, line 101
101
102<script src="/assets/webpack/tracker.1eb446cb.chunk.js" defer="defer"></script>
vendor: 1 bytes, line 102
102
103<script> 104//<![CDATA[ 105window.snowplowOptions = {"namespace":"gl","hostname":"gitlab.eps-dev.de:443","postPath":"/-/collect_events","forceSecureTracker":true,"appId":"gitlab_sm"}; 106gl = window.gl || {}; 107gl.snowplowStandardContext = {"schema":"iglu:com.gitlab/gitlab_standard/jsonschema/1-1-8","data":{"environment":"self-managed","source":"gitlab-rails","correlation_id":"01M42YYB4B9V0037ED2DF42GTF","extra":{},"user_id":null,"global_user_id":null,"user_type":null,"is_gitlab_team_member":null,"namespace_id":3,"ultimate_parent_namespace_id":3,"project_id":32,"feature_enabled_by_namespace_ids":null,"realm":"self-managed","deployment_type":"self-managed","context_generated_at":"2026-10-04T08:02:03.118Z","organization_id":1}}; 108gl.snowplowPseudonymizedPageUrl = "https://gitlab.eps-dev.de/namespace3/project32/-/blob/:repository_path?ref_type=masked_ref_type"; 109gl.maskedDefaultReferrerUrl = null; 110gl.ga4MeasurementId = 'G-ENFH3X7M5Y'; 111gl.duoEvents = []; 112gl.onlySendDuoEvents = false; 113 114 115//]]> 116</script>
116 117 118 119
120<script src="/assets/webpack/commons-graphql_explorer-pages.admin.application_settings.service_accounts-pages.admin.applications--1ccd7d89.8deea551.chunk.js" defer="defer"></script>
vendor: 1 bytes, line 120
120
121<script src="/assets/webpack/commons-pages.admin.abuse_reports.show-pages.dashboard.issues-pages.dashboard.issues.vue3-pages.dash-55dde355.128a952b.chunk.js" defer="defer"></script>
vendor: 1 bytes, line 121
121
122<script src="/assets/webpack/commons-pages.admin.application_settings.service_accounts-pages.explore.analytics_dashboards-pages.e-306889d5.db04dd7a.chunk.js" defer="defer"></script>
vendor: 1 bytes, line 122
122
123<script src="/assets/webpack/commons-pages.admin.deploy_keys.index-pages.admin.deploy_keys.index.vue3-pages.admin.groups.index-pa-c78a0679.f4864b25.chunk.js" defer="defer"></script>
vendor: 1 bytes, line 123
123
124<script src="/assets/webpack/commons-pages.dashboard.home-pages.registrations.new-pages.sessions.new-pages.users-pages.users.show-62bbbb3c.ec8c904f.chunk.js" defer="defer"></script>
vendor: 1 bytes, line 124
124
125<script src="/assets/webpack/commons-pages.dashboard.home-pages.projects.snippets.show-pages.snippets.show-super_sidebar.af1f9ecd.chunk.js" defer="defer"></script>
vendor: 1 bytes, line 125
125
126<script src="/assets/webpack/0dcf7166.fee24f6c.chunk.js" defer="defer"></script>
vendor: 1 bytes, line 126
126
127<script src="/assets/webpack/commons-pages.search.show-super_sidebar.052f515d.chunk.js" defer="defer"></script>
vendor: 1 bytes, line 127
127
128<script src="/assets/webpack/super_sidebar.392c40de.chunk.js" defer="defer"></script>
vendor: 1 bytes, line 128
128
129<script src="/assets/webpack/commons-pages.projects-pages.projects.activity-pages.projects.activity.vue3-pages.projects.alert_man-a5fec459.9a3759da.chunk.js" defer="defer"></script>
vendor: 1 bytes, line 129
129
130<script src="/assets/webpack/8632254b.bbb48efe.chunk.js" defer="defer"></script>
vendor: 1 bytes, line 130
130
131<script src="/assets/webpack/32327915.60295795.chunk.js" defer="defer"></script>
vendor: 1 bytes, line 131
131
132<script src="/assets/webpack/commons-pages.groups.saved_views.show-pages.groups.work_items-pages.groups.work_items.show-pages.pro-27e63f02.b3135ca8.chunk.js" defer="defer"></script>
vendor: 1 bytes, line 132
132
133<script src="/assets/webpack/commons-pages.projects.blob.show-pages.projects.blob.show.vue3-pages.projects.show-pages.projects.sh-7aa92eaa.41c42b43.chunk.js" defer="defer"></script>
vendor: 1 bytes, line 133
133
134<script src="/assets/webpack/commons-pages.projects.blob.show-pages.projects.blob.show.vue3-pages.projects.show-pages.projects.sh-350895e9.c1b45e94.chunk.js" defer="defer"></script>
vendor: 1 bytes, line 134
134
135<script src="/assets/webpack/commons-pages.projects.blob.edit-pages.projects.blob.edit.vue3-pages.projects.blob.new-pages.project-d16b70ea.2482600e.chunk.js" defer="defer"></script>
vendor: 1 bytes, line 135
135
136<script src="/assets/webpack/commons-pages.projects.blob.show-pages.projects.blob.show.vue3-pages.projects.show-pages.projects.sn-bdf5cb8c.d8393d0b.chunk.js" defer="defer"></script>
vendor: 1 bytes, line 136
136
137<script src="/assets/webpack/commons-pages.projects.blob.show-pages.projects.show-pages.projects.tree.show-pages.search.show-page-9619fd99.7ff124d3.chunk.js" defer="defer"></script>
vendor: 1 bytes, line 137
137
138<script src="/assets/webpack/commons-pages.projects.blob.show-pages.projects.show-pages.projects.snippets.show-pages.projects.tre-c684fcf6.829c99b9.chunk.js" defer="defer"></script>
vendor: 1 bytes, line 138
138
139<script src="/assets/webpack/commons-pages.projects.blob.edit-pages.projects.blob.new-pages.projects.blob.show-pages.projects.sho-ec79e51c.c1f36278.chunk.js" defer="defer"></script>
vendor: 1 bytes, line 139
139
140<script src="/assets/webpack/commons-pages.projects.blob.show-pages.projects.commits.show-pages.projects.show-pages.projects.tree.show.0cbf7db5.chunk.js" defer="defer"></script>
vendor: 1 bytes, line 140
140
141<script src="/assets/webpack/commons-pages.groups.show-pages.projects.blob.show-pages.projects.show-pages.projects.tree.show.e4f5af92.chunk.js" defer="defer"></script>
vendor: 1 bytes, line 141
141
142<script src="/assets/webpack/1d6dee80.10264729.chunk.js" defer="defer"></script>
vendor: 1 bytes, line 142
142
143<script src="/assets/webpack/commons-pages.projects.blob.show-pages.projects.tree.show.54c17f7b.chunk.js" defer="defer"></script>
vendor: 1 bytes, line 143
143
144<script src="/assets/webpack/pages.projects.blob.show.a1ebf682.chunk.js" defer="defer"></script>
144 145 146<meta content="object" property="og:type"> 147<meta content="GitLab" property="og:site_name"> 148<meta content="CHANGELOG.md · v2 · Lilly Schramm / BooklifyCE · GitLab" property="og:title"> 149<meta content="GitLab Community Edition" property="og:description"> 150<meta content="https://gitlab.eps-dev.de/uploads/-/system/project/avatar/32/Booklify_logo_lona-small.png?v=1761585089" property="og:image"> 151<meta content="64" property="og:image:width"> 152<meta content="64" property="og:image:height"> 153<meta content="https://gitlab.eps-dev.de/Lilly/booklify-ce/-/blob/v2/CHANGELOG.md?ref_type=heads" property="og:url"> 154<meta content="summary" property="twitter:card"> 155<meta content="CHANGELOG.md · v2 · Lilly Schramm / BooklifyCE · GitLab" property="twitter:title"> 156<meta content="GitLab Community Edition" property="twitter:description"> 157<meta content="https://gitlab.eps-dev.de/uploads/-/system/project/avatar/32/Booklify_logo_lona-small.png?v=1761585089" property="twitter:image"> 158 159<meta name="csrf-param" content="authenticity_token" /> 160<meta name="csrf-token" content="MfQOuhDA6zUdz3R0DmQJ22qg62BXtFJQAEBu8Ci4G5oMe_w_ri_SV5xYnMxV9Aly38Bkv4CQlwSMzCjkuuERkQ" /> 161<meta name="csp-nonce" /> 162<meta name="action-cable-url" content="/-/cable" /> 163<link crossorigin="use-credentials" href="/-/manifest.json" rel="manifest"> 164<link rel="icon" type="image/png" href="/assets/favicon-72a2cad5025aa931d6ea56c3201d1f18e68a8cd39788c7c80d5b2b82aa5143ef.png" id="favicon" data-original-href="/assets/favicon-72a2cad5025aa931d6ea56c3201d1f18e68a8cd39788c7c80d5b2b82aa5143ef.png" /> 165<link rel="apple-touch-icon" type="image/x-icon" href="/assets/apple-touch-icon-b049d4bc0dd9626f31db825d61880737befc7835982586d015bded10b4435460.png" /> 166<link crossorigin="use-credentials" href="/search/opensearch.xml" rel="search" title="Search GitLab" type="application/opensearchdescription+xml"> 167 168 169 170 171<meta content="GitLab Community Edition" name="description"> 172<meta content="#ECECEF" media="(prefers-color-scheme: light)" name="theme-color"> 173<meta content="#232227" media="(prefers-color-scheme: dark)" name="theme-color"> 174</head> 175 176<body class="tab-width-8 gl-browser-chrome gl-platform-other" data-namespace-id="3" data-page="projects:blob:show" data-page-type-id="v2/CHANGELOG.md" data-project="booklify-ce" data-project-full-path="Lilly/booklify-ce" data-project-id="32"> 177<div id="js-tooltips-container"></div> 178
179<script> 180//<![CDATA[ 181gl = window.gl || {}; 182gl.client = {"isChrome":true,"isOther":true}; 183 184 185//]]> 186</script>
186 187 188 189<header class="super-topbar js-super-topbar"></header> 190<div class="layout-page js-page-layout page-with-super-sidebar">
191<script> 192//<![CDATA[ 193const outer = document.createElement('div'); 194outer.style.visibility = 'hidden'; 195outer.style.overflow = 'scroll'; 196document.body.appendChild(outer); 197const inner = document.createElement('div'); 198outer.appendChild(inner); 199const scrollbarWidth = outer.offsetWidth - inner.offsetWidth; 200outer.parentNode.removeChild(outer); 201document.documentElement.style.setProperty('--scrollbar-width', `${scrollbarWidth}px`); 202 203//]]> 204</script>
204<aside class="js-super-sidebar super-sidebar super-sidebar-loading" data-command-palette="{"project_files_url":"/Lilly/booklify-ce/-/files/v2?format=json","project_blob_url":"/Lilly/booklify-ce/-/blob/v2"}" data-is-saas="false" data-sidebar="{"is_logged_in":false,"compare_plans_url":"https://about.gitlab.com/pricing","current_menu_items":[{"id":"project_overview","title":"BooklifyCE","avatar":"/uploads/-/system/project/avatar/32/Booklify_logo_lona-small.png?v=1761585089","entity_id":32,"link":"/Lilly/booklify-ce","link_classes":"shortcuts-project","is_active":false},{"id":"manage_menu","title":"Manage","icon":"users","avatar_shape":"rect","link":"/Lilly/booklify-ce/activity","is_active":false,"items":[{"id":"activity","title":"Activity","link":"/Lilly/booklify-ce/activity","link_classes":"shortcuts-project-activity","description":"Track what your team is working on and stay informed of changes","library_icon":"history","is_active":false},{"id":"members","title":"Members","link":"/Lilly/booklify-ce/-/project_members","description":"Control who has access to your project and what they can do","library_icon":"users","is_active":false},{"id":"labels","title":"Labels","link":"/Lilly/booklify-ce/-/labels","description":"Organize and categorize work across your project with consistent labels","library_icon":"labels","is_active":false}],"separated":false},{"id":"plan_menu","title":"Plan","icon":"planning","avatar_shape":"rect","link":"/Lilly/booklify-ce/-/work_items","is_active":false,"items":[{"id":"project_issue_list","title":"Work items","link":"/Lilly/booklify-ce/-/work_items","link_classes":"shortcuts-issues has-sub-items","pill_count_field":"openWorkItemsCount","pill_count_dynamic":false,"description":"Plan, track, and manage work in one place","library_icon":"work-items","is_active":false},{"id":"boards","title":"Issue boards","link":"/Lilly/booklify-ce/-/boards","link_classes":"shortcuts-issue-boards","description":"Visualize and manage work with kanban-style boards","library_icon":"work-item-issue-board","is_active":false},{"id":"milestones","title":"Milestones","link":"/Lilly/booklify-ce/-/milestones","description":"Plan releases and group work into time-based phases","library_icon":"milestone","is_active":false},{"id":"project_wiki","title":"Wiki","link":"/Lilly/booklify-ce/-/wikis","link_classes":"shortcuts-wiki","description":"Create and manage documentation","library_icon":"book","is_active":false}],"separated":false},{"id":"code_menu","title":"Code","icon":"code","avatar_shape":"rect","link":"/Lilly/booklify-ce/-/merge_requests","is_active":true,"items":[{"id":"project_merge_request_list","title":"Merge requests","link":"/Lilly/booklify-ce/-/merge_requests","link_classes":"shortcuts-merge_requests","pill_count_field":"openMergeRequestsCount","pill_count_dynamic":false,"description":"Collaborate on code changes with built-in review tools","library_icon":"merge-request","is_active":false},{"id":"files","title":"Repository","link":"/Lilly/booklify-ce/-/tree/v2","link_classes":"shortcuts-tree","description":"Browse and manage repository files and code","library_icon":"repository","is_active":true},{"id":"branches","title":"Branches","link":"/Lilly/booklify-ce/-/branches","description":"Manage project branches and branch protection","library_icon":"branch","is_active":false},{"id":"commits","title":"Commits","link":"/Lilly/booklify-ce/-/commits/v2?ref_type=heads","link_classes":"shortcuts-commits","description":"View commit history and changes","library_icon":"commit","is_active":false},{"id":"tags","title":"Tags","link":"/Lilly/booklify-ce/-/tags","description":"Create and manage release tags","library_icon":"tag","is_active":false},{"id":"graphs","title":"Repository graph","link":"/Lilly/booklify-ce/-/network/v2?ref_type=heads","link_classes":"shortcuts-network","description":"Visualize repository commit history and branches","library_icon":"repository-graph","is_active":false},{"id":"compare","title":"Compare revisions","link":"/Lilly/booklify-ce/-/compare?from=v2\u0026to=v2","description":"Compare changes between revisions","library_icon":"comparison","is_active":false},{"id":"project_snippets","title":"Snippets","link":"/Lilly/booklify-ce/-/snippets","link_classes":"shortcuts-snippets","description":"Store and share code snippets","library_icon":"snippet","is_active":false}],"separated":false},{"id":"build_menu","title":"Build","icon":"rocket","avatar_shape":"rect","link":"/Lilly/booklify-ce/-/pipelines","is_active":false,"items":[{"id":"pipelines","title":"Pipelines","link":"/Lilly/booklify-ce/-/pipelines","link_classes":"shortcuts-pipelines","description":"Automate your build and deployment process","library_icon":"pipeline","is_active":false},{"id":"jobs","title":"Jobs","link":"/Lilly/booklify-ce/-/jobs","link_classes":"shortcuts-builds","description":"Monitor individual build tasks and their results","library_icon":"job","is_active":false},{"id":"pipeline_schedules","title":"Pipeline schedules","link":"/Lilly/booklify-ce/-/pipeline_schedules","link_classes":"shortcuts-builds","description":"Run your automation on a recurring schedule","library_icon":"pipeline-schedule","is_active":false},{"id":"artifacts","title":"Artifacts","link":"/Lilly/booklify-ce/-/artifacts","link_classes":"shortcuts-builds","description":"Access build outputs and compiled binaries","library_icon":"doc-compressed","is_active":false}],"separated":false},{"id":"deploy_menu","title":"Deploy","icon":"deployments","avatar_shape":"rect","link":"/Lilly/booklify-ce/-/releases","is_active":false,"items":[{"id":"releases","title":"Releases","link":"/Lilly/booklify-ce/-/releases","link_classes":"shortcuts-deployments-releases","description":"Create and manage project releases","library_icon":"release","is_active":false},{"id":"packages_registry","title":"Package registry","link":"/Lilly/booklify-ce/-/packages","link_classes":"shortcuts-container-registry","description":"Publish and share packages across your organization","library_icon":"package","is_active":false},{"id":"model_registry","title":"Model registry","link":"/Lilly/booklify-ce/-/ml/models","description":"Store and manage machine learning models","library_icon":"model-registry","is_active":false}],"separated":false},{"id":"operations_menu","title":"Operate","icon":"cloud-pod","avatar_shape":"rect","link":"/Lilly/booklify-ce/-/environments","is_active":false,"items":[{"id":"environments","title":"Environments","link":"/Lilly/booklify-ce/-/environments","link_classes":"shortcuts-environments","description":"Manage your staging and production deployments","library_icon":"environment","is_active":false},{"id":"
204infrastructure_registry","title":"Terraform modules","link":"/Lilly/booklify-ce/-/terraform_module_registry","description":"Share and reuse infrastructure code","library_icon":"infrastructure-registry","is_active":false}],"separated":false},{"id":"monitor_menu","title":"Monitor","icon":"monitor","avatar_shape":"rect","link":"/Lilly/booklify-ce/-/incidents","is_active":false,"items":[{"id":"incidents","title":"Incidents","link":"/Lilly/booklify-ce/-/incidents","description":"Manage incident response and resolution","library_icon":"work-item-incident","is_active":false},{"id":"service_desk","title":"Service Desk","link":"/Lilly/booklify-ce/-/issues/service_desk","description":"Collect customer feedback and support requests via email","library_icon":"service-desk","is_active":false}],"separated":false},{"id":"analyze_menu","title":"Analyze","icon":"chart","avatar_shape":"rect","link":"/Lilly/booklify-ce/-/value_stream_analytics","is_active":false,"items":[{"id":"cycle_analytics","title":"Value stream analytics","link":"/Lilly/booklify-ce/-/value_stream_analytics","link_classes":"shortcuts-project-cycle-analytics","description":"Analyze value stream and cycle time","library_icon":"value-stream-analytics","is_active":false},{"id":"contributors","title":"Contributor analytics","link":"/Lilly/booklify-ce/-/graphs/v2?ref_type=heads","description":"Track and view member contributions and activity","library_icon":"contributor-analytics","is_active":false},{"id":"ci_cd_analytics","title":"CI/CD analytics","link":"/Lilly/booklify-ce/-/pipelines/charts","description":"Analyze CI/CD pipeline metrics and performance","library_icon":"cicd-analytics","is_active":false},{"id":"repository_analytics","title":"Repository analytics","link":"/Lilly/booklify-ce/-/graphs/v2/charts","link_classes":"shortcuts-repository-charts","description":"Analyze repository coverage, statistics, and metrics","library_icon":"repository-analytics","is_active":false},{"id":"model_experiments","title":"Model experiments","link":"/Lilly/booklify-ce/-/ml/experiments","description":"Track and manage machine learning experiments","library_icon":"machine-learning","is_active":false}],"separated":false}],"current_context_header":"Project","support_path":"https://support.gitlab.com","display_whats_new":false,"show_version_check":null,"search":{"search_context":{"project":{"id":32,"name":"BooklifyCE"},"project_metadata":{"mr_path":"/Lilly/booklify-ce/-/merge_requests","issues_path":"/Lilly/booklify-ce/-/issues"},"code_search":true,"ref":"v2","scope":null,"for_snippets":null}},"panel_type":"project","shortcut_links":[{"title":"Snippets","href":"/explore/snippets","css_class":"dashboard-shortcuts-snippets"},{"title":"Groups","href":"/explore/groups","css_class":"dashboard-shortcuts-groups"},{"title":"Projects","href":"/explore/projects","css_class":"dashboard-shortcuts-projects"}],"has_terms":true,"allow_signup":"false","pinned_items":["project_overview","members","project_issue_list","branches","project_merge_request_list","pipelines"]}"></aside> 205 206<div class="broadcast-wrapper gl-rounded-lg gl-overflow-hidden"> 207 208 209 210</div> 211<div class="panels-container gl-flex gl-gap-3"> 212<div class="content-panels gl-flex-1 gl-w-full gl-flex gl-gap-0 gl-relative js-content-panels gl-@container/content-panels"> 213<div class="paneled-view static-panel js-static-panel js-paneled-view content-wrapper"> 214<div class="panel-header"> 215<div class="panel-header-inner js-panel-header-inner">
216<script type="application/ld+json"> 217{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Lilly Schramm","item":"https://gitlab.eps-dev.de/Lilly"},{"@type":"ListItem","position":2,"name":"BooklifyCE","item":"https://gitlab.eps-dev.de/Lilly/booklify-ce"},{"@type":"ListItem","position":3,"name":"Repository","item":"https://gitlab.eps-dev.de/Lilly/booklify-ce/-/blob/v2/CHANGELOG.md?ref_type=heads"}]} 218 219 220</script>
220 221<div data-testid="breadcrumb-links" id="js-vue-page-breadcrumbs-wrapper"> 222<div data-breadcrumbs-json="[{"text":"Lilly Schramm","href":"/Lilly","avatarPath":null},{"text":"BooklifyCE","href":"/Lilly/booklify-ce","avatarPath":"/uploads/-/system/project/avatar/32/Booklify_logo_lona-small.png?v=1761585089"},{"text":"Repository","href":"/Lilly/booklify-ce/-/blob/v2/CHANGELOG.md?ref_type=heads","avatarPath":null}]" id="js-vue-page-breadcrumbs"></div> 223<div id="js-injected-page-breadcrumbs"></div> 224</div> 225<div id="js-page-breadcrumbs-extra"></div> 226 227 228 229<div class="panel-header-inner-actions"> 230 231 232<div class="panel-header-inner-actions-portal-target js-panel-actions-portal-target"></div> 233</div> 234</div> 235</div> 236<div class="panel-content"> 237<div class="panel-content-inner js-static-panel-inner"> 238<div class="alert-wrapper alert-wrapper-top-space gl-flex gl-flex-col gl-gap-3 container-fluid container-limited"> 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266</div> 267 268 269<div class="container-fluid container-limited repository-max-width project-highlight-puc"> 270<main class="content gl-@container/panel" id="content-body" itemscope itemtype="http://schema.org/SoftwareSourceCode"> 271<div id="js-drawer-container"></div> 272<div class="flash-container flash-container-page sticky" data-testid="flash-container"> 273<div id="js-global-alerts"></div> 274</div> 275 276 277 278 279 280 281 282<div class="js-signature-container" data-signatures-path="/Lilly/booklify-ce/-/commits/e53949bfe199b3a29e6def13f19dbf2dbf23acb2/signatures?limit=1"></div> 283 284<div class="gl-flex navigation-root"> 285<div id="js-file-browser" style="width:320px"></div> 286<div class="tree-holder gl-pt-5 gl-w-full gl-min-w-0" id="tree-holder"> 287<div data-blob-path="CHANGELOG.md" data-breadcrumbs-can-collaborate="false" data-breadcrumbs-can-edit-tree="false" data-breadcrumbs-can-push-code="false" data-breadcrumbs-can-push-to-branch="false" data-breadcrumbs-new-blob-path="/Lilly/booklify-ce/-/new/v2" data-breadcrumbs-new-branch-path="/Lilly/booklify-ce/-/branches/new" data-breadcrumbs-new-dir-path="/Lilly/booklify-ce/-/create_dir/v2" data-breadcrumbs-new-tag-path="/Lilly/booklify-ce/-/tags/new" data-breadcrumbs-upload-path="/Lilly/booklify-ce/-/create/v2" data-download-links="[{"text":"zip","path":"/Lilly/booklify-ce/-/archive/v2/booklify-ce-v2.zip?ref_type=heads"},{"text":"tar.gz","path":"/Lilly/booklify-ce/-/archive/v2/booklify-ce-v2.tar.gz?ref_type=heads"},{"text":"tar.bz2","path":"/Lilly/booklify-ce/-/archive/v2/booklify-ce-v2.tar.bz2?ref_type=heads"},{"text":"tar","path":"/Lilly/booklify-ce/-/archive/v2/booklify-ce-v2.tar?ref_type=heads"}]" data-escaped-ref="v2" data-history-link="/Lilly/booklify-ce/-/commits/v2" data-http-url="https://gitlab.eps-dev.de/Lilly/booklify-ce.git" data-project-id="32" data-project-path="Lilly/booklify-ce" data-project-root-path="/Lilly/booklify-ce" data-project-short-path="booklify-ce" data-ref="v2" data-ref-type="heads" data-root-ref="v2" data-show-no-ssh-key-message="" data-ssh-url="" data-user-settings-ssh-keys-path="" data-web-ide-button-default-branch="v2" data-web-ide-button-options="{"project_path":"Lilly/booklify-ce","ref":"v2","is_fork":false,"needs_to_fork":true,"gitpod_enabled":false,"is_blob":true,"show_edit_button":false,"show_web_ide_button":false,"show_gitpod_button":false,"show_pipeline_editor_button":false,"web_ide_url":"/-/ide/project/Lilly/booklify-ce/edit/v2/-/CHANGELOG.md","edit_url":"/Lilly/booklify-ce/-/edit/v2/CHANGELOG.md","pipeline_editor_url":"/Lilly/booklify-ce/-/ci/editor?branch_name=v2","gitpod_url":"","user_preferences_gitpod_path":"/-/profile/preferences#user_gitpod_enabled","user_profile_enable_gitpod_path":"/-/user_settings/profile?user%5Bgitpod_enabled%5D=true","fork_path":"
287/Lilly/booklify-ce/-/forks/new","fork_modal_id":null}" data-xcode-url="" id="js-repository-blob-header-app"></div> 288<div class="info-well"> 289<div data-history-link="/Lilly/booklify-ce/-/commits/v2" id="js-last-commit"></div> 290<div class="gl-hidden @sm/panel:gl-block"> 291<div class="well-segment blob-auxiliary-viewer"> 292<div class="blob-viewer" data-path="CHANGELOG.md" data-type="auxiliary"> 293<svg class="s16 gl-mr-1 gl-align-text-bottom" data-testid="history-icon"><use href="/assets/icons-5a3f88503a318f1eaf3b49d9d82c93cdde31fd5224ab8aeeb08534974b21f10c.svg#history"></use></svg> 294To find the state of this project's repository at the time of any of these versions, check out <a href='/Lilly/booklify-ce/-/tags'>the tags</a>. 295 296</div> 297 298</div> 299 300</div> 301</div> 302<div class="blob-content-holder js-per-page" data-blame-per-page="1000" id="blob-content-holder"> 303<div data-blob-path="CHANGELOG.md" data-can-download-code="true" data-escaped-ref="v2" data-full-name="Lilly Schramm / BooklifyCE" data-has-revs-file="false" data-original-branch="v2" data-project-path="Lilly/booklify-ce" data-ref-type="heads" data-resource-id="gid://gitlab/Project/32" id="js-view-blob-app"> 304<div class="gl-spinner-container" role="status"><span aria-hidden class="gl-spinner gl-spinner-md gl-spinner-dark !gl-align-text-bottom"></span><span class="gl-sr-only !gl-absolute">Loading</span> 305</div> 306</div> 307</div> 308 309</div> 310</div>
311<script> 312//<![CDATA[ 313 window.gl = window.gl || {}; 314 window.gl.webIDEPath = '/-/ide/project/Lilly/booklify-ce/edit/v2/-/CHANGELOG.md' 315 316 317//]]> 318</script>
318 319<div data-ambiguous="false" data-ref="v2" id="js-ambiguous-ref-modal"></div> 320 321 322</main> 323</div> 324 325 326</div> 327 328 329</div> 330</div> 331<div class="paneled-view-portal gl-@container/panel !gl-absolute gl-rounded-l-xl gl-shadow-lg gl-bg-default @xl/content-panels:gl-w-1/2 @xl/content-panels:gl-rounded-l-none @xl/content-panels:gl-shadow-none @xl/content-panels:!gl-relative @xl/content-panels:gl-bg-transparent gl-right-0" id="contextual-panel-portal"></div> 332</div> 333</div> 334 335</div> 336 337
338<script> 339//<![CDATA[ 340if ('loading' in HTMLImageElement.prototype) { 341 document.querySelectorAll('img.lazy').forEach(img => { 342 img.loading = 'lazy'; 343 let imgUrl = img.dataset.src; 344 // Only adding width + height for avatars for now 345 // Keep this logic in sync with appendWidthToAvatarUrl in 346 // app/assets/javascripts/vue_shared/components/user_avatar/utils.js 347 if (imgUrl.indexOf('/avatar/') > -1 && !imgUrl.includes('width=')) { 348 const targetWidth = img.getAttribute('width') || img.width; 349 imgUrl += imgUrl.includes('?') ? `&width=${targetWidth}` : `?width=${targetWidth}`; 350 } 351 img.src = imgUrl; 352 img.removeAttribute('data-src'); 353 img.classList.remove('lazy'); 354 img.classList.add('js-lazy-loaded'); 355 img.dataset.testid = 'js-lazy-loaded-content'; 356 }); 357} 358 359//]]> 360</script>
vendor: 1 bytes, line 360
360
361<script> 362//<![CDATA[ 363gl = window.gl || {}; 364gl.experiments = {}; 365 366 367//]]> 368</script>
368 369 370</body> 371</html> 372
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.