This commit is contained in:
2025-04-30 09:51:36 +08:00
parent 561881c9aa
commit 09afa239a6
848 changed files with 385870 additions and 205 deletions

View File

@@ -0,0 +1,78 @@
document.addEventListener('alpine:init', function () {
Alpine.data('data', function () {
const editor = new toastui.Editor({
el: document.querySelector('#editor'),
language: 'zh-CN',
previewStyle: 'vertical',
height: '660px',
initialEditType: 'wysiwyg',
initialValue: ""
});
return {
pageTitle: "撰写新文章 - " + window.config.name + "",
article: {
title: "",
slug: "",
content: "",
coverUrl: "",
tags: [],
categoryId: 0,
summary: ""
},
tempfile :null,
categories: [],
isSubmitting: false,
tagInputText:"",
loadCategories() {
if (this.loading) {
return;
}
this.loading = true;
axios.get('categories')
.then(data => {
this.categories = data;
});
},
saveTags() {
this.tagInputText = document.getElementById('tag-input').innerText;
if (this.tagInputText) {
this.tagInputText.replace(/,/g, ",").replace(/ /g, ",").split(',').forEach(x => this.article.tags.push(x));
document.getElementById('tag-input').innerText = '';
}
},
createArticle() {
this.saveTags();
if(this.isSubmitting){
return;
}
this.isSubmitting = true;
axios.post('articles', this.article)
.then(data => {
location.href = "/admin/article";
})
.finally(() => {
this.isSubmitting = false;
});
},
addIcon() {
const fileinput = document.getElementById('img-file-input');
if (fileinput) {
fileinput.click();
}
},
init() {
editor.on('change', () => {
this.article.content = editor.getMarkdown();
});
this.loadCategories();
window.addEventListener('load', () => {
document.title = this.pageTitle;
});
}
};
})
});