feat(web-ui): render changelog for new release sections (#4629)
This commit is contained in:
parent
7e286b90b6
commit
3e2f4c2846
3 changed files with 121 additions and 3 deletions
|
|
@ -10,6 +10,7 @@
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@lizardbyte/shared-web": "2025.922.181114",
|
"@lizardbyte/shared-web": "2025.922.181114",
|
||||||
|
"marked": "17.0.1",
|
||||||
"vue": "3.5.26",
|
"vue": "3.5.26",
|
||||||
"vue-i18n": "11.2.8"
|
"vue-i18n": "11.2.8"
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -63,8 +63,8 @@
|
||||||
</div>
|
</div>
|
||||||
<a class="btn btn-success m-1" :href="preReleaseVersion.release.html_url" target="_blank">{{ $t('index.download') }}</a>
|
<a class="btn btn-success m-1" :href="preReleaseVersion.release.html_url" target="_blank">{{ $t('index.download') }}</a>
|
||||||
</div>
|
</div>
|
||||||
<pre><b>{{preReleaseVersion.release.name}}</b></pre>
|
<h3>{{preReleaseVersion.release.name}}</h3>
|
||||||
<pre>{{preReleaseVersion.release.body}}</pre>
|
<div class="markdown-body" v-html="convertMarkdownToHtml(preReleaseVersion.release.body)"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="stableBuildAvailable">
|
<div v-if="stableBuildAvailable">
|
||||||
|
|
@ -76,7 +76,7 @@
|
||||||
<a class="btn btn-success m-1" :href="githubVersion.release.html_url" target="_blank">{{ $t('index.download') }}</a>
|
<a class="btn btn-success m-1" :href="githubVersion.release.html_url" target="_blank">{{ $t('index.download') }}</a>
|
||||||
</div>
|
</div>
|
||||||
<h3>{{githubVersion.release.name}}</h3>
|
<h3>{{githubVersion.release.name}}</h3>
|
||||||
<pre>{{githubVersion.release.body}}</pre>
|
<div class="markdown-body" v-html="convertMarkdownToHtml(githubVersion.release.body)"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -90,11 +90,21 @@
|
||||||
|
|
||||||
<script type="module">
|
<script type="module">
|
||||||
import { createApp } from 'vue'
|
import { createApp } from 'vue'
|
||||||
|
import { marked } from 'marked'
|
||||||
import { initApp } from './init'
|
import { initApp } from './init'
|
||||||
import Navbar from './Navbar.vue'
|
import Navbar from './Navbar.vue'
|
||||||
import ResourceCard from './ResourceCard.vue'
|
import ResourceCard from './ResourceCard.vue'
|
||||||
import SunshineVersion from './sunshine_version'
|
import SunshineVersion from './sunshine_version'
|
||||||
|
|
||||||
|
// Configure marked to allow HTML
|
||||||
|
marked.setOptions({
|
||||||
|
breaks: true,
|
||||||
|
gfm: true,
|
||||||
|
headerIds: true,
|
||||||
|
mangle: false,
|
||||||
|
sanitize: false
|
||||||
|
});
|
||||||
|
|
||||||
console.log("Hello, Sunshine!")
|
console.log("Hello, Sunshine!")
|
||||||
let app = createApp({
|
let app = createApp({
|
||||||
components: {
|
components: {
|
||||||
|
|
@ -179,6 +189,12 @@
|
||||||
}
|
}
|
||||||
return logLines;
|
return logLines;
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
convertMarkdownToHtml(markdown) {
|
||||||
|
if (!markdown) return '';
|
||||||
|
return marked.parse(markdown);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,3 +14,104 @@
|
||||||
background-color: var(--bs-primary-bg-subtle);
|
background-color: var(--bs-primary-bg-subtle);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Markdown body styling for release notes */
|
||||||
|
.markdown-body {
|
||||||
|
font-size: 1rem;
|
||||||
|
line-height: 1.6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown-body h1,
|
||||||
|
.markdown-body h2,
|
||||||
|
.markdown-body h3,
|
||||||
|
.markdown-body h4,
|
||||||
|
.markdown-body h5,
|
||||||
|
.markdown-body h6 {
|
||||||
|
margin-top: 1.5rem;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown-body h2 {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
border-bottom: 1px solid rgba(var(--bs-body-color-rgb), 0.1);
|
||||||
|
padding-bottom: 0.3rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown-body h3 {
|
||||||
|
font-size: 1.25rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown-body ul,
|
||||||
|
.markdown-body ol {
|
||||||
|
padding-left: 2rem;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown-body li {
|
||||||
|
margin-bottom: 0.25rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown-body a {
|
||||||
|
color: var(--bs-link-color);
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown-body a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown-body img {
|
||||||
|
max-width: 100%;
|
||||||
|
height: auto;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown-body code {
|
||||||
|
padding: 0.2em 0.4em;
|
||||||
|
margin: 0;
|
||||||
|
font-size: 85%;
|
||||||
|
background-color: rgba(var(--bs-body-color-rgb), 0.05);
|
||||||
|
border-radius: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown-body pre {
|
||||||
|
padding: 1rem;
|
||||||
|
overflow: auto;
|
||||||
|
font-size: 85%;
|
||||||
|
line-height: 1.45;
|
||||||
|
background-color: rgba(var(--bs-body-color-rgb), 0.05);
|
||||||
|
border-radius: 6px;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown-body blockquote {
|
||||||
|
padding: 0 1rem;
|
||||||
|
color: rgba(var(--bs-body-color-rgb), 0.65);
|
||||||
|
border-left: 0.25rem solid rgba(var(--bs-body-color-rgb), 0.15);
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown-body table {
|
||||||
|
border-spacing: 0;
|
||||||
|
border-collapse: collapse;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown-body table th,
|
||||||
|
.markdown-body table td {
|
||||||
|
padding: 6px 13px;
|
||||||
|
border: 1px solid rgba(var(--bs-body-color-rgb), 0.15);
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown-body table tr:nth-child(2n) {
|
||||||
|
background-color: rgba(var(--bs-body-color-rgb), 0.03);
|
||||||
|
}
|
||||||
|
|
||||||
|
.markdown-body hr {
|
||||||
|
height: 0.25rem;
|
||||||
|
padding: 0;
|
||||||
|
margin: 1.5rem 0;
|
||||||
|
background-color: rgba(var(--bs-body-color-rgb), 0.1);
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue